Compare commits

..

1131 Commits
main ... logger

Author SHA1 Message Date
El Mghazli Yacine
1ef5fafe89 logger component 2022-10-10 10:15:51 +02:00
frtabu
9f6e46bd8a Add backend memory cleanup when stopping scope, minor enhancements frontend interface 2022-10-07 20:01:01 +02:00
El Mghazli Yacine
7372378732 detail 2022-10-06 18:38:45 +02:00
El Mghazli Yacine
71d20e0543 removed logger components 2022-10-06 18:03:42 +02:00
El Mghazli Yacine
33fd2343ce removed charts folder 2022-10-06 18:02:05 +02:00
El Mghazli Yacine
48ef96959d removed scop2 and ws2 2022-10-06 17:07:29 +02:00
El Mghazli Yacine
c73ce11828 Merge branch 'rxws' of https://gitlab.eurecom.fr/oai/openairinterface5g into rxws 2022-10-06 15:15:46 +02:00
El Mghazli Yacine
66546b7ad0 send message fixed 2022-10-06 15:15:25 +02:00
El Mghazli Yacine
11087fff0f details 2022-10-06 15:15:25 +02:00
El Mghazli Yacine
ffa13d99e5 scope2 working like scope 2022-10-06 15:15:25 +02:00
yacine
ccae22f648 serdes to be tested 2022-10-06 15:15:25 +02:00
yacine
4e932c9248 build OK 2022-10-06 15:15:25 +02:00
yacine
0c9dd4d04a scope2 2022-10-06 15:12:23 +02:00
El Mghazli Yacine
67a5bfaa43 initial commit WIP 2022-10-06 15:12:23 +02:00
El Mghazli Yacine
501192a1f8 send message fixed 2022-10-06 15:12:06 +02:00
frtabu
83d00d4c21 scope waterfall enhancements 2022-10-06 15:09:38 +02:00
El Mghazli Yacine
12504106eb details 2022-10-04 15:15:48 +02:00
El Mghazli Yacine
3bb957722f scope2 working like scope 2022-10-04 12:58:41 +02:00
yacine
ae2abbc6e2 serdes to be tested 2022-10-02 23:42:22 +02:00
yacine
544c723372 build OK 2022-10-01 01:10:29 +02:00
yacine
1e34ab443c Merge branch 'rxws' of https://gitlab.eurecom.fr/oai/openairinterface5g into rxws 2022-10-01 00:51:03 +02:00
yacine
519b38817a scope2 2022-10-01 00:50:41 +02:00
El Mghazli Yacine
3da668576c initial commit WIP 2022-10-01 00:50:41 +02:00
yacine
ce46cab866 scope2 2022-10-01 00:48:51 +02:00
frtabu
553c6377aa waterfall implem going on.... 2022-09-30 19:13:29 +02:00
El Mghazli Yacine
b42694254f initial commit WIP 2022-09-30 19:07:20 +02:00
frtabu
50821cace3 switch to 16bits value for LLR data, start watterfall view implem 2022-09-29 19:40:52 +02:00
frtabu
2fb9752bff llr view enhancements 2022-09-28 19:33:42 +02:00
frtabu
7b57a3d4ed hardening websocket connection 2022-09-28 16:23:44 +02:00
frtabu
d81b670ac2 scope: llr view debug 2022-09-22 16:41:46 +02:00
yacine nokia
461ba045b1 use env backend for ws:// 2022-09-20 15:32:27 +02:00
frtabu
03a8ff2913 init fix scope availibility Pb 2022-09-20 14:31:59 +02:00
frtabu
6e85528582 scope interface modifications 2022-09-20 12:17:37 +02:00
frtabu
81ba755984 more scope updates 2022-09-19 11:25:35 +02:00
frtabu
e8ca483c56 scope front-end and back-end fixes and enhancements 2022-09-13 19:48:17 +02:00
frtabu
f8eba8400d scope chart display enhancements 2022-09-09 18:52:05 +02:00
frtabu
6d2bd1025f Add frontend chart options to improve GUI and perf 2022-09-07 19:50:56 +02:00
frtabu
36c0cf0133 scope data transfer debug 2022-09-06 19:47:57 +02:00
frtabu
7b31678bed fix frontend bug and add signal selection 2022-09-05 19:33:04 +02:00
frtabu
b2ba88667a scope gui enhancement, implement backend scope interface suport via regular http, websocket reserved for scope data transfers , frontend broken, init Pb 2022-08-26 17:14:41 +02:00
frtabu
0aca093122 start Restructure scope support code to move to regular http request control protocol, websocket being used for data 2022-08-24 19:38:36 +02:00
frtabu
73f5496ffa scope iq transfer implem and test 2022-08-23 19:19:53 +02:00
frtabu
f809e4689c angular update and ng2-charts integration completed 2022-07-26 19:15:00 +02:00
frtabu
5ae59cc394 Angular update 2022-07-26 15:16:02 +02:00
frtabu
def1ebc661 angular update 2022-07-26 13:18:22 +02:00
frtabu
b57963dd2a remove package_lock.json from git 2022-07-26 13:12:59 +02:00
frtabu
d33ae02d39 Angular update and start importing ng2-charts 2022-07-26 12:45:38 +02:00
frtabu
86ba2b0822 angular update 2022-07-25 17:55:41 +02:00
frtabu
4bfc929bad angular update 2022-07-25 15:33:48 +02:00
frtabu
db81a3f0b9 angular update 2022-07-25 15:31:18 +02:00
frtabu
abf14c0bb4 angular update 2022-07-25 15:28:26 +02:00
frtabu
a1d4514ae0 angular update 2022-07-25 15:26:05 +02:00
frtabu
d813fb8470 angular upgrade 2022-07-25 15:23:01 +02:00
frtabu
e2615dd886 angular update 2022-07-25 15:21:04 +02:00
frtabu
cc24755a34 angular update 2022-07-25 14:33:20 +02:00
frtabu
ca45cbb2b7 Angular update 2022-07-25 14:27:54 +02:00
frtabu
deb2a453c6 angular update for chart lib 2022-07-25 14:19:49 +02:00
frtabu
5a08d8109c websrv softscope interface, implement data messages 2022-07-22 19:54:08 +02:00
frtabu
65c858757d scope implem going on 2022-07-11 20:11:07 +02:00
frtabu
55003cafd2 Merge branch 'websrv' of https://gitlab.eurecom.fr/oai/openairinterface5g into websrv 2022-07-11 00:53:53 +02:00
frtabu
57a7488e85 Fix modifiable string bug and minor GUI update 2022-07-11 00:38:08 +02:00
yacine nokia
da85cf5183 Merge branch 'websrv' of gitlab.eurecom.fr:oai/openairinterface5g into websrv 2022-07-09 20:12:32 +02:00
yacine nokia
32a6dd85c2 fix string issue 2022-07-09 20:12:15 +02:00
frtabu
d9216265dc Merge branch 'websrv' of https://gitlab.eurecom.fr/oai/openairinterface5g into websrv
after rebase onto develop.
2022-07-08 20:00:53 +02:00
yacine nokia
99ecd83133 firefox debugger 2022-07-08 12:28:14 +02:00
frtabu
c4958e50e8 vertical scroll bar in grid tile 2022-07-08 12:19:07 +02:00
frtabu
7b16f7e863 Fix build error when libulfius not found (remove REQUIRED keyword in CMakelist) 2022-07-08 12:17:44 +02:00
El Mghazli Yacine
e0c7980df5 websrv working 2022-07-08 12:17:44 +02:00
frtabu
4b002029fb Remove telnet server dependency 2022-07-08 12:17:44 +02:00
frtabu
27d626dc48 exclude authentication code from websrv.c to workaround ubuntu18 compilation Pb 2022-07-08 12:17:44 +02:00
frtabu
4fa9e2b39b merge channel algo validation frontend and implement simuType variable type in backend - doesn't work and breaks modifiable string which are no more modifiable 2022-07-08 12:17:44 +02:00
El Mghazli Yacine
fb5c768159 predefs$ 2022-07-08 12:13:24 +02:00
El Mghazli Yacine
0966ceb70b predefs$ 2022-07-08 12:12:28 +02:00
El Mghazli Yacine
b75d4f90b7 loglvl 2022-07-08 12:07:09 +02:00
El Mghazli Yacine
8cbe53b82b paramCtrl 2022-07-08 12:03:30 +02:00
El Mghazli Yacine
13e17339d3 removed paramFC 2022-07-08 11:53:57 +02:00
El Mghazli Yacine
6d457fcb56 removed paramFC 2022-07-08 11:47:22 +02:00
yacine nokia
748d4cb49a localhost dev env 2022-07-08 11:46:16 +02:00
El Mghazli Yacine
1e77b753ff fixed table set 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
2964ef7e3e paramCtrl 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
7f69632bbb removed paramFC 2022-07-08 11:33:50 +02:00
frtabu
17af1562a8 scope implem ongoing.. 2022-07-08 11:33:50 +02:00
frtabu
c3378c7f84 Scope implem going on , front and back 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
38dca6387f cleanup api (details) 2022-07-08 11:33:50 +02:00
frtabu
4a42ff54df log level validation , backend implem 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
22d4495c20 !!!! major refactoring !!!! 2022-07-08 11:33:50 +02:00
frtabu
3b93a9c5cb minor fixes in scope frontend/backend 2022-07-08 11:33:50 +02:00
frtabu
6407df90e2 websocket binary message and scope interface 2022-07-08 11:33:50 +02:00
frtabu
d75da26833 start implem websocket interface with frontend 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
b0f0106cc7 better rows with pristine 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
2690cbd08e ws server address 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
868f9d9042 ng serve OK 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
ad0dcfe287 ng serve OK 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
7bd44da548 initial commit - build NOK 2022-07-08 11:33:50 +02:00
El Mghazli Yacine
185e5934b7 pristine 2022-07-08 11:33:50 +02:00
frtabu
24802ee18b updatable result (frontend) 2022-07-08 11:33:50 +02:00
frtabu
8916cfdfd2 implement updatte results in frontend, ongoing 2022-07-08 11:33:49 +02:00
frtabu
b135c1dd8f start fixing https implem in backend 2022-07-08 11:33:49 +02:00
frtabu
6e61c8a05a Add access to parsed config file 2022-07-08 11:33:49 +02:00
frtabu
c957882da8 backend and frontend implementation of downloading config file 2022-07-08 11:33:49 +02:00
frtabu
7404ad7a5c commands with params... working now 2022-07-08 11:33:49 +02:00
frtabu
4e8fa01a25 frontend dialog test 2022-07-08 11:33:49 +02:00
frtabu
ec0d3fde1c command with parameters... 2022-07-08 11:33:49 +02:00
frtabu
58618be544 on going with command with parameter 2022-07-08 11:33:49 +02:00
frtabu
7e7c097942 going on with command parameter 2022-07-08 11:33:49 +02:00
frtabu
94796957e8 commands with a parameter, going on.... 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
55d9200a48 trying questions 2022-07-08 11:33:49 +02:00
frtabu
d815edebe7 command with parameter going on 2022-07-08 11:33:49 +02:00
frtabu
f1d18b4edb command with param implementation in frontend, beginning 2022-07-08 11:33:49 +02:00
frtabu
06355e9cf1 rontend Question Dialog 2022-07-08 11:33:49 +02:00
frtabu
9bcf269856 Implementing commands with question like when modifying a channel model (ask which model) 2022-07-08 11:33:49 +02:00
frtabu
9bfcbe7faa implemebtation of softmodem threads commands 2022-07-08 11:33:49 +02:00
frtabu
fa92bf1a79 Dialog enhancements in frontend 2022-07-08 11:33:49 +02:00
frtabu
a348ada211 fix log modifications in backend, allow Dialog resize and move 2022-07-08 11:33:49 +02:00
frtabu
e0f76e6ca6 implement log options modif in backend 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
351f069adc window.location.port 2022-07-08 11:33:49 +02:00
frtabu
64f84cdd6a implementation of command modifying module parameters, step 1, decode json sent by fronthaul 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
8bd1b3b53a boolean as string for setRow 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
2aef88960f http://' + window.location.hostname + ':8090' 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
51d6fd7ec2 v1 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
f2d43636bf better fields and buttons 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
dbeda2d33f table disapears when no rows 2022-07-08 11:33:49 +02:00
frtabu
5d9f91997e Modify status info , add redir log commands 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
210429f388 set disabled if all row is not modifiable 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
dc40e0dca1 fixed cmd results tile now disapears 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
fe8f418e7a fixed boolean enabled 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
98de3b9049 fixed 2 posts 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
55d83f6045 button and readonly 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
6882b63991 fixed rawIndex 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
45896f2583 row.paramsFA.controls 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
ed6b13c759 IRow2 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
eee4d3fc07 setRow$ in API 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
b8f64823bf setParam$ 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
d37952f94d setParam$ 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
12e2eded38 confirm button ok 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
d910e92669 height 80% display 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
9e2f2db88c table OK 2022-07-08 11:33:49 +02:00
frtabu
85929b7933 fix empty array format 2022-07-08 11:33:49 +02:00
frtabu
5673a31814 fix new IRespCmd json format in backend 2022-07-08 11:33:49 +02:00
frtabu
7da80421ff table response implementation fix (backend) 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
35e4f29cf6 display fix 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
c1abfcfc50 confirm dialog 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
b2e8b78a01 dynamic table WIP 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
53e160728a cleanup rowCtrl 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
522f2ad140 dynamic tables 2022-07-08 11:33:49 +02:00
frtabu
4a26a44ee0 Table Response implementation in backend 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
59722d1a91 confirm dialog before sending cmd 2022-07-08 11:33:49 +02:00
frtabu
218a524cd2 display array fix 2022-07-08 11:33:49 +02:00
frtabu
f44f105cb3 more commands implementation in backend 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
32ff4b33f1 "prod": "ng serve --configuration=production" 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
bf0492ba87 table display 2022-07-08 11:33:49 +02:00
frtabu
7a9c13422a fix json format in log response 2022-07-08 11:33:49 +02:00
frtabu
3e3b33e94c test table reslt with log command 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
58ae227080 tables and new API with IColumn and IRow 2022-07-08 11:33:49 +02:00
frtabu
81a671a4f3 implementation of log command 2022-07-08 11:33:49 +02:00
frtabu
039c6d24bc Adapt command response structure 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
ec80ef106f details 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
60f17d4d45 ilogs 2022-07-08 11:33:49 +02:00
frtabu
5e86379be4 implement mechanism for simple string response 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
62789c5161 openDialog 2022-07-08 11:33:49 +02:00
frtabu
bede89b233 command processing implementation 2022-07-08 11:33:49 +02:00
frtabu
4a29496988 better variable type processing 2022-07-08 11:33:49 +02:00
frtabu
a809a8c722 modify telnet server structure to support command execution from the webserver 2022-07-08 11:33:49 +02:00
frtabu
ad3ce4ddb6 json boolean fix 2022-07-08 11:33:49 +02:00
frtabu
72df29f225 fix backend commands response body 2022-07-08 11:33:49 +02:00
frtabu
42ab0247bf backend implementation of variable modifications 2022-07-08 11:33:49 +02:00
frtabu
a439a0cce0 Add OPTIONS http method support, used before POST by frontend. 2022-07-08 11:33:49 +02:00
frtabu
f7c9075337 change endpoint registration mechanism 2022-07-08 11:33:49 +02:00
frtabu
15fc3ccce0 More debug messages in backend 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
f2500d9297 fixed cmds display 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
72bc9baf2e fixed API variables calls 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
6cef7a8f67 APIv2.2 2022-07-08 11:33:49 +02:00
Raymond Knopp
b32524dd74 Adapt to new frontend interface 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
a45dd3b8bc yacine s'adapte grace a sa flaxibilité legendaire 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
a981bb382b APIv2.2 2022-07-08 11:33:49 +02:00
frtabu
f17aba0f5e config module fixes and websrv modif 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
ca0398c5bc APIv2.1 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
ab6bb2534e webserv APIv2 (frontend part) 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
c875ce639c working with first API version 2022-07-08 11:33:49 +02:00
frtabu
23a1d8d9bc fix config file generation to sip command line only options 2022-07-08 11:33:49 +02:00
frtabu
c0f6b39da5 config module enhancement,step 2 2022-07-08 11:33:49 +02:00
frtabu
095be9fe6a config module enhancement, next step 2022-07-08 11:33:49 +02:00
frtabu
82ebc9fa7b config module enhancement (dump of running config): start implem. 2022-07-08 11:33:49 +02:00
Raymond Knopp
526720cb24 add websrv as optional lib and frontend as independant target in oai build 2022-07-08 11:33:49 +02:00
frtabu
433dbcd41a websrv backend implementation next step 2022-07-08 11:33:49 +02:00
frtabu
20b3210062 json format sync with frontend 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
b959af152d backend env 2022-07-08 11:33:49 +02:00
frtabu
e5335a0188 Tested init with front end 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
1387bdc16e api first test 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
d2dfe830e7 display ok 2022-07-08 11:33:49 +02:00
frtabu
3da8b0e5eb Add https support and front-end url support 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
de0e075381 rudiments ok 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
826b405d47 ng build OK 2022-07-08 11:33:49 +02:00
frtabu
d761f67bcf go on websrv implem 2022-07-08 11:33:49 +02:00
frtabu
975835804d Initial implem web interface for telnet server 2022-07-08 11:33:49 +02:00
El Mghazli Yacine
b467fd2c68 updated tslib 2022-07-08 11:30:26 +02:00
El Mghazli Yacine
daec2ba3ea initial commit 2022-07-08 11:30:26 +02:00
El Mghazli Yacine
e705c88dd5 cleanup 2022-07-08 11:30:26 +02:00
El Mghazli Yacine
7121bf6d05 updated angular successfully 2022-07-08 11:30:26 +02:00
El Mghazli Yacine
1228608cc2 ng update 2022-07-08 11:30:26 +02:00
El Mghazli Yacine
47ac986d8c ng update 2022-07-08 11:30:26 +02:00
El Mghazli Yacine
8ea378eea8 ngx initial commit before upgrade 2022-07-08 11:30:26 +02:00
El Mghazli Yacine
2c688f230f Merge branch 'websrv' of gitlab.eurecom.fr:oai/openairinterface5g into websrv 2022-07-08 10:49:03 +02:00
El Mghazli Yacine
cbec64c28f websrv working 2022-07-08 10:49:00 +02:00
frtabu
1c352f3138 vertical scroll bar in grid tile 2022-07-08 01:43:00 +02:00
frtabu
5e964d660f Fix build error when libulfius not found (remove REQUIRED keyword in CMakelist) 2022-07-07 19:52:13 +02:00
frtabu
2e66c87f4d Remove telnet server dependency 2022-07-06 11:49:29 +02:00
frtabu
82a771dd61 exclude authentication code from websrv.c to workaround ubuntu18 compilation Pb 2022-07-06 10:13:45 +02:00
frtabu
c99f52207d merge channel algo validation frontend and implement simuType variable type in backend - doesn't work and breaks modifiable string which are no more modifiable 2022-07-05 13:35:05 +02:00
Robert Schmidt
5091682551 Merge branch 'integration_2022_wk26' into 'develop'
integration_2022_wk26

See merge request oai/openairinterface5g!1605

MR !1602 Use (std) bool instead of custom bool types
MR !1600 Discard RTX if RI changed
MR !1598 Set correct master clock rate for N320
MR !1584 enablement of statistics
MR !1603 Fix decoding multiple ULSCH in the same slot in the case of a ULSCH fails to be detected
MR !1590 Improvements and AVX2 in cpx_rotate_vector()
2022-07-04 15:03:35 +00:00
El Mghazli Yacine
3555edff76 Merge branch 'validators' of gitlab.eurecom.fr:oai/openairinterface5g into validators 2022-07-04 17:02:21 +02:00
El Mghazli Yacine
6723fc531b predefs$ 2022-07-04 17:02:11 +02:00
El Mghazli Yacine
26cc637d1b predefs$ 2022-07-04 16:57:42 +02:00
frtabu
e63f1454b3 Merge branch 'websrv' of https://gitlab.eurecom.fr/oai/openairinterface5g into websrv 2022-07-04 16:45:53 +02:00
El Mghazli Yacine
c69d980613 loglvl 2022-07-01 15:02:18 +02:00
frtabu
4c4917442f Merge branch 'websrv' of https://gitlab.eurecom.fr/oai/openairinterface5g into websrv 2022-07-01 14:14:42 +02:00
frtabu
bfb06225a5 Merge branch 'websrv' of https://gitlab.eurecom.fr/oai/openairinterface5g into websrv 2022-07-01 14:13:33 +02:00
El Mghazli Yacine
d62892ff8a Merge branch 'validators' of gitlab.eurecom.fr:oai/openairinterface5g into validators 2022-07-01 11:51:50 +02:00
El Mghazli Yacine
78ed7d4570 fixed table set 2022-07-01 11:47:57 +02:00
El Mghazli Yacine
d969a124ee paramCtrl 2022-06-30 17:09:45 +02:00
El Mghazli Yacine
b68e614850 removed paramFC 2022-06-30 17:09:45 +02:00
El Mghazli Yacine
17a4dea3e1 paramCtrl 2022-06-30 16:45:55 +02:00
Robert Schmidt
2cced7bdb5 Merge remote-tracking branch 'origin/optim-rotate_cpx' into integration_2022_wk26 2022-06-30 15:41:28 +02:00
frtabu
43130b687e scope implem ongoing.. 2022-06-30 00:21:27 +02:00
Robert Schmidt
b7e026fda5 Merge remote-tracking branch 'origin/fix_decoding_multi_ulsch_in_the_same_slot' into integration_2022_wk26 2022-06-29 23:15:15 +02:00
Robert Schmidt
4662ccc46a Merge remote-tracking branch 'origin/stats' into integration_2022_wk26 2022-06-29 23:15:06 +02:00
Robert Schmidt
ae54a1bd05 Merge remote-tracking branch 'origin/fix-n320' into integration_2022_wk26 2022-06-29 23:14:51 +02:00
Robert Schmidt
94ca30e82b Merge remote-tracking branch 'origin/NR_layers_in_harq' into integration_2022_wk26 2022-06-29 23:14:42 +02:00
frtabu
fdf2728d02 Scope implem going on , front and back 2022-06-29 23:07:25 +02:00
frtabu
2783acb933 Scope implem going on , front and back 2022-06-29 20:22:16 +02:00
laurent
df1cffbc7f fix bug introduced by avx2 rotate_cpx change to c16_t 2022-06-29 16:52:47 +02:00
El Mghazli Yacine
e78e720a46 Merge branch 'validators' of gitlab.eurecom.fr:oai/openairinterface5g into validators 2022-06-28 12:13:49 +02:00
El Mghazli Yacine
2d9bac6359 removed paramFC 2022-06-28 12:13:39 +02:00
El Mghazli Yacine
2ebb462a8e removed paramFC 2022-06-28 12:10:07 +02:00
frtabu
8ea5fd7894 Merge branch 'websrv' of https://gitlab.eurecom.fr/oai/openairinterface5g into websrv 2022-06-28 11:38:36 +02:00
frtabu
c939a9cdf5 log level validation , backend implem 2022-06-28 11:35:45 +02:00
El Mghazli Yacine
31c9a03e83 cleanup api (details) 2022-06-28 11:19:28 +02:00
Robert Schmidt
ff5ec94d33 Address review: drop bool defines 2022-06-28 09:38:48 +02:00
luis_pereira87
d6e58c9436 Fix decoding multiple ULSCH in the same slot in the case of a ULSCH fails to be detected 2022-06-28 07:35:06 +01:00
laurent
5894bcac22 rebase develop 2022-06-27 18:48:45 +02:00
laurent
ef469b9b51 code review remarks 2022-06-27 18:35:47 +02:00
Laurent Thomas
980bb2420b fix CI discovered bug in avx2 rotate 2022-06-27 18:35:47 +02:00
Laurent Thomas
bf219fc24f avx2 and better simd algo 2022-06-27 18:35:46 +02:00
El Mghazli Yacine
b7b41fefc0 !!!! major refactoring !!!! 2022-06-27 18:30:54 +02:00
Robert Schmidt
0b91791f67 Use (std) bool instead of custom bool types
OAI is riddled with boolean_t, FALSE, TRUE, etc. This makes no sense, as
there is a standard bool type, and could lead to nasty bugs if a
definition of a bool is non-standard (0 == false, true == !false). This
commit removes all non-standard bools in the whole project.
2022-06-27 10:07:48 +02:00
frtabu
29c5129b0a minor fixes in scope frontend/backend 2022-06-27 00:34:03 +02:00
Robert Schmidt
6d030ea2fa Merge branch 'integration_2022_wk25' into 'develop'
integration_2022_wk25

See merge request oai/openairinterface5g!1596

MR !1549: Remove ssb subcarrier offset from config file
MR !1589: Putting all CM code in one file
MR !1592: Support Fedora 36
MR !1492: Harmonization of PUCCH Resources
MR !1581: F1: Interoperability with Accelleran CU
MR !1599: nr rlc: minor: update tests
2022-06-26 15:56:56 +00:00
frtabu
3b0f050a33 websocket binary message and scope interface 2022-06-26 02:11:03 +02:00
frtabu
dc6dd67827 start implem websocket interface with frontend 2022-06-24 19:42:33 +02:00
luis_pereira87
a9faf533b4 Fix SA with COTS UE in monolithic mode after merge 2022-06-24 14:51:38 +01:00
Ilario FAVERO
c5b8fa5418 New command line arg for disabling stats: --disable-stats 2022-06-24 14:32:39 +02:00
francescomani
1565667908 remove rtx from list 2022-06-23 17:42:55 +02:00
El Mghazli Yacine
9f10bfebf2 better rows with pristine 2022-06-23 16:32:37 +02:00
Robert Schmidt
0e04fba03d Fix build warnings 2022-06-23 16:18:50 +02:00
El Mghazli Yacine
b34a44a4f9 ws server address 2022-06-23 14:40:53 +02:00
Robert Schmidt
5cebe354c5 Merge remote-tracking branch 'origin/bugfix-minor-update-nr-rlc-tests' into integration_2022_wk25 2022-06-23 14:14:37 +02:00
Robert Schmidt
b37050ac6e Merge remote-tracking branch 'origin/F1_interop_ACC_n78' into integration_2022_wk25 2022-06-23 14:09:33 +02:00
Robert Schmidt
304c92c639 Fixes in conversions.h 2022-06-23 13:51:36 +02:00
Cedric Roux
4505e780c5 nr rlc: minor: update tests
Behavior for ack/nack generation has changed not too long ago but the tests
were not checked and updated.
2022-06-23 11:44:01 +02:00
El Mghazli Yacine
0b7201244a ng serve OK 2022-06-22 23:06:18 +02:00
El Mghazli Yacine
28bd9ea4bc ng serve OK 2022-06-22 23:06:05 +02:00
El Mghazli Yacine
044ed48fc7 initial commit - build NOK 2022-06-22 19:39:04 +02:00
Robert Schmidt
644422ebec Merge remote-tracking branch 'origin/NR_PUCCH_RRC_Resources' into integration_2022_wk25 2022-06-22 17:20:38 +02:00
Robert Schmidt
586aa46c2c Set correct master clock rate for N320 2022-06-22 16:54:35 +02:00
francescomani
6f481e09f6 abort rtx if RI decreased 2022-06-22 16:15:31 +02:00
El Mghazli Yacine
1b071df0bc pristine 2022-06-22 10:13:05 +02:00
Robert Schmidt
f6fe86c653 Fix macros to avoid warnings 2022-06-21 19:24:49 +02:00
Robert Schmidt
fe7228daee Merge remote-tracking branch 'origin/support-fedora36' into integration_2022_wk25 2022-06-21 19:11:17 +02:00
Robert Schmidt
2c226b08f4 Merge remote-tracking branch 'origin/episys-channel-model-org' into integration_2022_wk25 2022-06-21 19:11:00 +02:00
Cedric Roux
2802418c34 remove debug printf 2022-06-21 16:43:54 +02:00
francescomani
2659dce8b8 removing flag init_UL_tti_req_ahead 2022-06-21 13:49:31 +02:00
Robert Schmidt
9c02189e64 Remove nr_bler_data from physims 2022-06-21 08:54:41 +02:00
Cedric Roux
d0fa56b1de compilation fix 2022-06-20 15:15:11 +02:00
Robert Schmidt
0fe98c25a2 Avoid RHEL_RELEASE_VERSION: not defined in Ubuntu 2022-06-20 13:34:54 +02:00
francescomani
a4e2c2b799 addressing review 2022-06-20 11:58:06 +02:00
Robert Schmidt
2124e43d3a Correctly use RHEL_RELEASE_CODE for Fedora and RHEL
This reverts commit 4f44a1026b.
2022-06-20 11:33:29 +02:00
francescomani
fb6fa64bc7 Merge remote-tracking branch 'origin/develop' into NR_remove_ssb_offset_from_configfile 2022-06-20 09:33:50 +02:00
Cedric Roux
5cd674483b Merge remote-tracking branch 'origin/develop' into F1_interop_ACC_n78 2022-06-19 18:41:27 +02:00
Cedric Roux
2bed0352fd f1: remove hardcoded value, set to what is in develop 2022-06-19 18:33:57 +02:00
Robert Schmidt
4f44a1026b Remove RHEL_RELEASE_CODE define 2022-06-19 18:02:08 +02:00
Robert Schmidt
dab905519b Remove nscd from additional packages
nscd (Name service cache daemon) is not needed for running OAI
2022-06-19 18:02:08 +02:00
Robert Schmidt
2b38c78588 Add fedora36 to supported distros 2022-06-19 18:02:08 +02:00
Robert Schmidt
12a23fb1ef Merge branch 'integration_2022_wk24' into 'develop'
integration_2022_wk24

See merge request oai/openairinterface5g!1591

MR !1382: Semi-automatic code generator for LDPC decoder for AVX2 and AVX512
MR !1521: 5G NR performance improvements for low SNR conditions
MR !1579: pthread_create, RT scheduler, and address sanitizer are incompatible in Ubuntu 18.04
MR !1588: small fix in csi configuration
MR !1583: Encoding/decoding CellGroup at MAC and fix RA with Msg3 carrying DCCH or DTCH messages
2022-06-18 13:57:58 +00:00
Robert Schmidt
ee71b0dd9b Lower error threshold for low SNR test in dlsim 2022-06-17 19:04:08 +02:00
frtabu
45967c8b77 updatable result (frontend) 2022-06-17 18:04:55 +02:00
frtabu
fc758069fb implement updatte results in frontend, ongoing 2022-06-17 18:04:55 +02:00
frtabu
9be7b12654 start fixing https implem in backend 2022-06-17 18:04:55 +02:00
frtabu
160abd88cc Add access to parsed config file 2022-06-17 18:04:55 +02:00
frtabu
e2eebc7a28 backend and frontend implementation of downloading config file 2022-06-17 18:04:55 +02:00
frtabu
a52adaa95e commands with params... working now 2022-06-17 18:04:55 +02:00
frtabu
ced3078e30 frontend dialog test 2022-06-17 18:04:55 +02:00
frtabu
b7d2840e04 command with parameters... 2022-06-17 18:04:55 +02:00
frtabu
0a88f1a2d8 on going with command with parameter 2022-06-17 18:04:55 +02:00
frtabu
4855b4102d going on with command parameter 2022-06-17 18:04:55 +02:00
frtabu
2dac45f1a3 commands with a parameter, going on.... 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
e73acbc776 trying questions 2022-06-17 18:04:55 +02:00
frtabu
21d0fdb92a command with parameter going on 2022-06-17 18:04:55 +02:00
frtabu
68e2cb7800 command with param implementation in frontend, beginning 2022-06-17 18:04:55 +02:00
frtabu
de24e2da1e rontend Question Dialog 2022-06-17 18:04:55 +02:00
frtabu
bc4eb38eec Implementing commands with question like when modifying a channel model (ask which model) 2022-06-17 18:04:55 +02:00
frtabu
8600b7815d implemebtation of softmodem threads commands 2022-06-17 18:04:55 +02:00
frtabu
8bee5da854 Dialog enhancements in frontend 2022-06-17 18:04:55 +02:00
frtabu
40bfb7b07a fix log modifications in backend, allow Dialog resize and move 2022-06-17 18:04:55 +02:00
frtabu
46c1dd511a implement log options modif in backend 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
d9cd942f3b window.location.port 2022-06-17 18:04:55 +02:00
frtabu
147fb74085 implementation of command modifying module parameters, step 1, decode json sent by fronthaul 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
7546e614c7 boolean as string for setRow 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
9a58bae112 http://' + window.location.hostname + ':8090' 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
9e99113aa1 v1 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
ea4d82bc31 better fields and buttons 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
94efccba21 table disapears when no rows 2022-06-17 18:04:55 +02:00
frtabu
28c688b16f Modify status info , add redir log commands 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
6d991456a9 set disabled if all row is not modifiable 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
bb840b7f7e fixed cmd results tile now disapears 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
9fecc570f8 fixed boolean enabled 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
1a5da9a1aa fixed 2 posts 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
adb13cd4d4 button and readonly 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
9f8ebe86f4 fixed rawIndex 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
46329a4f2d row.paramsFA.controls 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
1f4dcc9fda IRow2 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
7dda3dde08 setRow$ in API 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
e108aaa7db setParam$ 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
7da12ca861 setParam$ 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
2b987e8e00 confirm button ok 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
c2106e49d8 height 80% display 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
0b473838fa table OK 2022-06-17 18:04:55 +02:00
frtabu
3e15c59e00 fix empty array format 2022-06-17 18:04:55 +02:00
frtabu
9aa6e61197 fix new IRespCmd json format in backend 2022-06-17 18:04:55 +02:00
frtabu
4c58063268 table response implementation fix (backend) 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
25f1b46647 display fix 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
68ae77a79e confirm dialog 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
a4ad969553 dynamic table WIP 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
415e9e8495 cleanup rowCtrl 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
5a5d8670ea dynamic tables 2022-06-17 18:04:55 +02:00
frtabu
9e20b2464f Table Response implementation in backend 2022-06-17 18:04:55 +02:00
El Mghazli Yacine
ea5c125dbd confirm dialog before sending cmd 2022-06-17 18:04:55 +02:00
frtabu
66646cd17a display array fix 2022-06-17 18:04:54 +02:00
frtabu
81b0df6f1d more commands implementation in backend 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
e9dadf1706 "prod": "ng serve --configuration=production" 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
f9e45856fc table display 2022-06-17 18:04:54 +02:00
frtabu
0f9fcb3f0a fix json format in log response 2022-06-17 18:04:54 +02:00
frtabu
17af664374 test table reslt with log command 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
da3bda8bbb tables and new API with IColumn and IRow 2022-06-17 18:04:54 +02:00
frtabu
a5d66d1f4a implementation of log command 2022-06-17 18:04:54 +02:00
frtabu
4b289a53df Adapt command response structure 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
d5eb164a20 details 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
fec25da5e7 ilogs 2022-06-17 18:04:54 +02:00
frtabu
4ec7d0a824 implement mechanism for simple string response 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
a873c0080a openDialog 2022-06-17 18:04:54 +02:00
frtabu
06f905853a command processing implementation 2022-06-17 18:04:54 +02:00
frtabu
179b8f57b3 better variable type processing 2022-06-17 18:04:54 +02:00
frtabu
9b1e5db390 modify telnet server structure to support command execution from the webserver 2022-06-17 18:04:54 +02:00
frtabu
32e5f13002 json boolean fix 2022-06-17 18:04:54 +02:00
frtabu
4497800fe1 fix backend commands response body 2022-06-17 18:04:54 +02:00
frtabu
6846459ea5 backend implementation of variable modifications 2022-06-17 18:04:54 +02:00
frtabu
f7dafc4771 Add OPTIONS http method support, used before POST by frontend. 2022-06-17 18:04:54 +02:00
frtabu
ee11159d5d change endpoint registration mechanism 2022-06-17 18:04:54 +02:00
frtabu
c0a3b39688 More debug messages in backend 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
679dcae557 fixed cmds display 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
b14c4b2aa6 fixed API variables calls 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
92c534dcaa APIv2.2 2022-06-17 18:04:54 +02:00
Raymond Knopp
07fb404e33 Adapt to new frontend interface 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
a010b4d89f yacine s'adapte grace a sa flaxibilité legendaire 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
b340427363 APIv2.2 2022-06-17 18:04:54 +02:00
frtabu
654a2b7f63 config module fixes and websrv modif 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
b0cb9b8615 APIv2.1 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
9bb75d82cf webserv APIv2 (frontend part) 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
535239a5ae working with first API version 2022-06-17 18:04:54 +02:00
frtabu
89b2a966ba fix config file generation to sip command line only options 2022-06-17 18:04:54 +02:00
frtabu
29e2a542dd config module enhancement,step 2 2022-06-17 18:04:54 +02:00
frtabu
98a736c9d7 config module enhancement, next step 2022-06-17 18:04:54 +02:00
frtabu
8404af8d18 config module enhancement (dump of running config): start implem. 2022-06-17 18:04:54 +02:00
Raymond Knopp
7572d8cb46 add websrv as optional lib and frontend as independant target in oai build 2022-06-17 18:04:54 +02:00
frtabu
db43c3e12e websrv backend implementation next step 2022-06-17 18:04:54 +02:00
frtabu
ea066dc0dc json format sync with frontend 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
c0037b1f98 backend env 2022-06-17 18:04:54 +02:00
frtabu
29aa6407be Tested init with front end 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
f6d4c77e75 api first test 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
c0e019efbd display ok 2022-06-17 18:04:54 +02:00
frtabu
ded656208d Add https support and front-end url support 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
9c36a8ebc2 rudiments ok 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
1dda299dc3 ng build OK 2022-06-17 18:04:54 +02:00
frtabu
c8d1b99e42 go on websrv implem 2022-06-17 18:04:54 +02:00
frtabu
b274f3c8d3 Initial implem web interface for telnet server 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
1d7775875e updated tslib 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
3a560604ec initial commit 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
f677cc34b3 cleanup 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
cdab201890 updated angular successfully 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
20186aec26 ng update 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
79fc8623e3 ng update 2022-06-17 18:04:54 +02:00
El Mghazli Yacine
c104b12302 ngx initial commit before upgrade 2022-06-17 18:04:54 +02:00
luis_pereira87
78267db68b Revert "Update downlink MCS table" block of code to function nr_set_pdsch_semi_static to get downlink working again in NSA 2022-06-17 16:17:15 +01:00
Robert Schmidt
0c0d88b201 Better formatting for Consolidated Test Results 2022-06-17 12:17:54 +02:00
Robert Schmidt
7194a720c9 Increase 'low SNR' test's upper SNR threshold 2022-06-17 12:16:12 +02:00
Robert Schmidt
9ff4630071 Merge remote-tracking branch 'origin/NR_RRC_MAC_CellGroup' into integration_2022_wk24 2022-06-17 12:11:37 +02:00
luis_pereira87
9e27394ecc Reset feedback_slot and round values when resetting HARQ processes 2022-06-17 10:35:01 +01:00
Robert Schmidt
2399da33cb Merge remote-tracking branch 'origin/csi-multi-ues-fix' into integration_2022_wk24 2022-06-16 22:26:00 +02:00
Robert Schmidt
348ff98762 Merge remote-tracking branch 'origin/ubuntu_18_rt_add_san_incompatibility' into integration_2022_wk24 2022-06-16 22:25:46 +02:00
Robert Schmidt
032d477481 Merge remote-tracking branch 'origin/5g-nr-low-snr-performance' into integration_2022_wk24 2022-06-16 22:25:38 +02:00
Laurent Thomas
a73e500ded Add a warning for ubuntu 18.04 in build_oai 2022-06-16 21:42:46 +02:00
Melissa Elkadi
7b75305e3c pthread_create, RT scheduler, and address sanitizer are incompatible in Ubuntu 18.04
When we run with the RT scheduler and the address sanitizer in Ubuntu
18.04, pthread_create will hang and never create threads.  This adds
some explanatory text in CMakeLists.txt to explain about this issue.
2022-06-16 21:42:26 +02:00
Robert Schmidt
5761164a09 Build without AVX512 on asterix machine 2022-06-16 14:25:18 +02:00
Roberto Louro Magueta
4053c0c3b2 Revert log2_maxh in pusch_vars 2022-06-15 19:54:12 +01:00
luis_pereira87
cc33856ba8 Reset HARQ processes after RA when Msg3 carries a DCCH or DTCH message.
Reset ul_failure flag only after sending Msg4 otherwise gNB starts scheduling too early
2022-06-15 17:24:47 +01:00
Roberto Louro Magueta
14d3a9c0e5 Fixes after merge 2022-06-15 12:53:36 +01:00
Robert Schmidt
e62119bea5 Reintroduce nr_ulsim -I option after wrong merge 2022-06-15 13:53:22 +02:00
Roberto Louro Magueta
7f21567f83 Merge remote-tracking branch 'origin/develop' into 5g-nr-low-snr-performance
# Conflicts:
#	cmake_targets/autotests/test_case_list.xml
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
2022-06-15 11:17:06 +01:00
Cedric Roux
2521e46593 Merge remote-tracking branch 'origin/F1C_extensions_develop' into F1_interop_ACC_n78
Conflicts:
	openair2/F1AP/f1ap_du_interface_management.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
	openair2/LAYER2/NR_MAC_gNB/main.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
	openair2/RRC/NR/rrc_gNB.c
	openair3/ocp-gtpu/gtp_itf.cpp
2022-06-15 11:28:37 +02:00
luis_pereira87
527003492d Revert call to process_CellGroup function in rrc_mac_config_req_gNB to fix F1 user plane working 2022-06-15 09:34:55 +01:00
Robert Schmidt
d835f3387d Build without AVX512 on caracal to avoid compilation fail 2022-06-15 08:49:10 +02:00
Melissa Elkadi
630f8ac2b1 Putting all CM code in one file
This commit includes reorganization of
all of the SISO/MIMO channel modelling
support being moved into a single CM
file. Furthermore, it includes a bug
fix for the number of MCS simulation
tables (29 total, 0-28).
2022-06-14 12:52:01 -07:00
Karim Boutiba
079ad360e0 solve the conflict between cri-RSRP and cri-RI-PMI-CQI in the case of multiple UEs 2022-06-14 13:38:12 +00:00
Robert Schmidt
bb15360a55 Revert "CI: phySim container build: add SYS_PTRACE"
This reverts commit 0122749406.
2022-06-14 12:35:48 +02:00
Robert Schmidt
0a74c23c8a Disable Asan in LDPC decoder generator executables
The CI compiles the physims using Asan. This in turn compiles Asan into
the LDPC decoder generator files. Since they are run during build, there
are two options:

1) trigger the build using capability SYS_PTRACE to allow running asan
   when executing the generators.
2) disable asan in the generators.

The first option seems not feasible, as the compilation of the ldpctest
does not succeed (in fact, for a reason I don't understand, ninja seems
to trigger linking and is then blocked indefinitely). Therefore, this
commit simple disables asan in the generators.
2022-06-14 12:30:12 +02:00
luis_pereira87
ed74875025 Call rrc_mac_config_req_gNB function only when running nr-softmodem as a DU or in monolithic mode 2022-06-14 11:29:56 +01:00
luis_pereira87
7cee46777f Cosmetic changes 2022-06-13 23:20:37 +01:00
Cedric Roux
33b69bdf30 nr rlc: bugfix: use hard-coded mapping between drb ID and mac lcid
This will probably impact negatively the Accelleran interoperability
but the previous version is not correct and breaks the oai nr ue.

To be checked in a CU/DU scenario with Accelleran.
2022-06-13 18:28:07 +02:00
Cedric Roux
1ad8f254c2 Merge remote-tracking branch 'origin/develop' into F1_interop_ACC_n78 2022-06-13 16:59:59 +02:00
francescomani
045de837ab Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-06-13 10:25:05 +02:00
Raymond Knopp
a119e84f92 Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen 2022-06-13 09:44:51 +02:00
luis_pereira87
983760e9a4 Fix after merge with develop 2022-06-13 08:21:05 +01:00
luis_pereira87
131db89dfc Merge remote-tracking branch 'origin/develop' into NR_RRC_MAC_CellGroup
# Conflicts:
#	openair1/PHY/INIT/nr_init.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
2022-06-13 08:19:39 +01:00
Robert Schmidt
5944b212b2 Merge branch 'integration_2022_wk23' into 'develop'
integration_2022_wk23

See merge request oai/openairinterface5g!1585

MR !1558: Add 5G SA end-to-end, step-by-step, tutorials for OAI CN5G, OAI gNB and COTS UE
MR !1578: Adding required LOG_As for EpiSci CI testing. (Proxy)
MR !1575: Fix msg3 retransmissions with OAI UE
MR !1577: Fix ULSCH timing measurements in RAN-gNB-nrUE-MONO-TDD-Band78-N300 and logging improvements
MR !1544: NR CORESET harmonization
MR !1287: PUSCH performance improvement
MR !1580: Aligning some internal memory to avoid segfaults
2022-06-13 07:02:11 +00:00
Raymond Knopp
7387721ecf Merge branch 'ldpc-decoder-codegen' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc-decoder-codegen 2022-06-12 23:24:11 +02:00
Raymond Knopp
f6bb869c0b fixed AVX2 issue for cnProc code generator. Some cleanup in formatting and deleting unused files. 2022-06-12 23:23:07 +02:00
Robert Schmidt
169f42a365 Prevent #define name clash
The files openair1/PHY/CODING/nrLDPC_cnProc.h and
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h have the same name,
and also the same include guard/define. This commit renames the define
in the latter to prevent this name clash.
2022-06-12 16:32:46 +02:00
Robert Schmidt
6900f2bc88 Add License to LDPC decoder generator files 2022-06-12 16:29:49 +02:00
luis_pereira87
e850a8ece7 Fix initial connection setup when there is Msg4 retransmissions and UE comes with a new RA with Msg3 carrying DCCH or DTCH message 2022-06-10 23:18:18 +01:00
Robert Schmidt
aabd9c6c4e nr_ulsim: Change thread-count command-line option to -C 2022-06-10 15:45:32 +02:00
Robert Schmidt
b69fa39577 Merge remote-tracking branch 'origin/alignment_fixes' into integration_2022_wk23 2022-06-10 13:52:50 +02:00
Robert Schmidt
b193ccf6ee Merge remote-tracking branch 'origin/develop' into 5g-nr-low-snr-performance 2022-06-10 13:50:47 +02:00
Robert Schmidt
0122749406 CI: phySim container build: add SYS_PTRACE
Physical simulators are built using address sanitizer. During the build
process, we use generators that are themselves built during the build
process. They are also asan, and we therefore need to give the
SYS_PTRACE capability during the build process to have them run
correctly.
2022-06-10 13:37:30 +02:00
Robert Schmidt
ae23942020 Compile container images without AVX512 for relocatability 2022-06-10 13:37:30 +02:00
Robert Schmidt
dc4f610245 Merge remote-tracking branch 'origin/ulsim-perf-testing' into integration_2022_wk23 2022-06-09 17:47:57 +02:00
Robert Schmidt
3793edf686 Merge remote-tracking branch 'origin/NR_coreset_harmonization' into integration_2022_wk23 2022-06-09 17:47:37 +02:00
Robert Schmidt
4b0d4e38c4 Merge remote-tracking branch 'origin/fix-test-caracal' into integration_2022_wk23 2022-06-09 17:46:54 +02:00
Robert Schmidt
28ad0eaacb Merge remote-tracking branch 'origin/NR_fix_msg3_rtx' into integration_2022_wk23 2022-06-09 17:46:45 +02:00
Robert Schmidt
9127577bf3 Merge remote-tracking branch 'origin/fixing_removed_LOG_As' into integration_2022_wk23 2022-06-09 17:46:36 +02:00
Robert Schmidt
2e6fea604d Merge remote-tracking branch 'origin/NR_SA_tutorials' into integration_2022_wk23 2022-06-09 17:46:27 +02:00
Sakthivel Velumani
f95c636a6b Improved help for ulsim 2022-06-09 20:07:23 +05:30
Robert Schmidt
f7ab71763d Remove old way of generating LDPC decoders 2022-06-09 15:03:13 +02:00
Robert Schmidt
dde6d61dd4 Dynamically create LDPC decoder headers when building ldpc libs 2022-06-09 15:03:13 +02:00
Robert Schmidt
7b68c48618 Make LDPC generator output directory prefix configurable 2022-06-09 15:03:13 +02:00
Robert Schmidt
250043655a Remove some variables from LDPC generated code to avoid warnings 2022-06-09 15:03:13 +02:00
Laurent THOMAS
97b3d1a5cd fix mutex not initialised in ul decoder 2022-06-09 15:03:13 +02:00
francescomani
8adcf8368a reverting activation of timer at transmission 2022-06-09 14:48:42 +02:00
francescomani
f5e9c4ec36 applying Robert's patch 2022-06-09 13:26:04 +02:00
luis_pereira87
e7a491415c Improvements on RRC passing CellGroup to MAC to get COTS UE working 2022-06-09 10:08:28 +01:00
francescomani
0aec0d91c6 temporary workaround for RRC passing CG to MAC (forced encoding of message at MAC) 2022-06-09 09:35:42 +01:00
Robert Schmidt
894c45eae5 Add comment to fix fill_mastercellGroupConfig() 2022-06-09 10:20:39 +02:00
Laurent THOMAS
e3747ea06b Fix small bugs in nrLDPC_tools, remain some warnings to fix 2022-06-09 10:01:45 +02:00
Robert Schmidt
aed83c91de Create header for LDPC bnProc BG2 files 2022-06-09 09:25:57 +02:00
Robert Schmidt
12c0f52fea Merge remote-tracking branch 'origin/develop' into F1_interop_ACC_n78 2022-06-08 19:45:17 +02:00
Sakthivel Velumani
0d9e548f39 Minor fixes in ulsim and dlsim 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
80ad5df367 Removed unused 256QAM table option 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
933ad3dcf4 Removed duplicate definition and other errors
left during rebase
2022-06-08 21:32:07 +05:30
Sakthivel Velumani
8a8bacead9 Set default cmd values in UE
It looked like the default command line option were not set in case the options were not passed. The right function was not called.
2022-06-08 21:32:07 +05:30
Sakthivel Velumani
e8d91d642e fixed nr_dlsim -q parameter bug 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
0cea80c8fa changing PUSCH dmrs symbol pos to 0 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
1afdc298e9 Interpolation chest default in UE 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
7c47420da7 Making interpolation ch estimation as default 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
b2b84caeb5 Made PRB averaging channel est as default
fixed indendation
updated ulsim CI test parameters
2022-06-08 21:32:07 +05:30
Sakthivel Velumani
93e6bd26da Made channel estimation techniques configurable 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
0960aa3d00 Updating ulsim CI test parameters 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
ab899c3a08 fix CI test parameters 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
da8d3037df fixed bugs in phy sims 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
8f79ae0ea7 A bug fix in DMRS averaging 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
689ecf5ae1 Enable additional DMRS symbol in UL 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
e36a2b483a Added 3GPP TS 38104 8.2.1.2-13 16QAM CI test cases 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
1d99c8e695 LDPC iterations as command line parameter 2022-06-08 21:32:07 +05:30
Sakthivel Velumani
b29f92c1d6 Add MCS table option to ulsim 2022-06-08 21:31:17 +05:30
Sakthivel Velumani
36190b1c7d Logging changes to ulsim 2022-06-08 21:31:17 +05:30
Sakthivel Velumani
ac58460b6e Time averaging PUSCH channel estimates 2022-06-08 21:31:17 +05:30
Sakthivel Velumani
382b2c41e3 Fixed ulsim to test 8 Rx antennas 2022-06-08 21:31:17 +05:30
Robert Schmidt
2d3f4f7310 Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen 2022-06-08 17:17:11 +02:00
Robert Schmidt
9eccd6c11d Correct caracal IP address 2022-06-08 17:06:47 +02:00
francescomani
85b48193d4 fix msg3 retransmissions with OAI UE 2022-06-08 16:45:30 +02:00
Cedric Roux
f71766c3ee Merge remote-tracking branch 'origin/develop' into F1_interop_ACC_n78
Conflicts:
	openair2/F1AP/f1ap_du_ue_context_management.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
	openair2/RRC/NR/rrc_gNB.c
	openair3/ocp-gtpu/gtp_itf.cpp

There were some important conflicts in openair3/ocp-gtpu/gtp_itf.cpp
I rewrote a bit the function Gtpv1uHandleGpdu(). It might have been
done wrongly.
To be tested and fixed if needed.

To redo the merge, if needed:
git checkout 9b2a163ebb
git merge 5ea828e149
2022-06-08 15:48:24 +02:00
francescomani
e24edde2fd remove commented code 2022-06-08 15:09:53 +02:00
francescomani
bc1227f9a0 Merge remote-tracking branch 'origin/develop' into NR_remove_ssb_offset_from_configfile 2022-06-08 14:52:47 +02:00
francescomani
539e5e89f3 Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-06-08 14:45:33 +02:00
francescomani
4ffef42472 Merge remote-tracking branch 'origin/develop' into NR_coreset_harmonization 2022-06-08 13:39:39 +02:00
Florian Kaltenberger
bb17287089 aligning some internal memory to avoid segfaults 2022-06-08 12:09:07 +02:00
Robert Schmidt
d7dae8fa91 Merge branch 'integration_2022_wk22' into 'develop'
integration_2022_wk22

See merge request oai/openairinterface5g!1576

MR !1501 fixes to support multiple pdu sessions (tested with 2 pdu sessions)
MR !1566 issue 545
MR !1569 bugfix in fill_searchSpaceZero
MR !1574 Repair LTE-M: Add missing parameter preambleTransMax_CE_rel13
MR !1496 PHY procedures at UE for CSI-RS
Increase LTE-2x2 ping thresholds to 60 ms to make tests pass (throughput seems to be fine)
2022-06-08 08:38:10 +00:00
Robert Schmidt
b1d07fb3e0 print_meas_log(): do not write beyond memory end 2022-06-07 17:41:21 +02:00
francescomani
7546b8ca1b fix dlsim compilation 2022-06-06 17:37:40 +02:00
francescomani
0b55910c48 possible fix in type setting of Y for coreset 2022-06-06 16:40:09 +02:00
luis_pereira87
308cae752a Update download link for the latest version of Open Cells SIM card programing tool uicc-v2.6 2022-06-06 14:13:58 +01:00
Robert Schmidt
45522ae86c [CI] Increase LTE-2x2 test ping thresholds to make test pass 2022-06-04 10:10:47 +02:00
Robert Schmidt
5f37ab35b4 Merge remote-tracking branch 'origin/develop-CSI' into integration_2022_wk22 2022-06-04 10:08:38 +02:00
Robert Schmidt
4e34462488 Merge remote-tracking branch 'origin/preambleTransMax_CE_rel13-in-configuration' into integration_2022_wk22 2022-06-04 10:08:31 +02:00
Robert Schmidt
7b3191d1a6 Merge remote-tracking branch 'origin/NR_SS0_config_fix' into integration_2022_wk22 2022-06-04 10:08:25 +02:00
Robert Schmidt
1215444cae Merge remote-tracking branch 'origin/fix-bug-545' into integration_2022_wk22 2022-06-04 10:08:17 +02:00
Robert Schmidt
6e7160ac03 Merge remote-tracking branch 'origin/multiple_pdu_MR' into integration_2022_wk22 2022-06-04 10:08:10 +02:00
Robert Schmidt
bea2ec5c3b Use snprintf() in dump_mac_stats() 2022-06-04 09:33:18 +02:00
Robert Schmidt
f8f20827e9 Rename DL&UL scheduling timing stats 2022-06-04 09:32:00 +02:00
Robert Schmidt
59e10dc8da Clean up MAC stats: don't show timing stats in console log, only file 2022-06-04 09:31:54 +02:00
Robert Schmidt
f2bc364b50 Drop periodic "Number of bad PUCCH" output 2022-06-04 09:29:20 +02:00
Melissa Elkadi
cc2c3b9123 Adding required LOG_As for EpiSci CI testing. (Proxy)
In commit 05c07c401f,
four of the LOG_A logs were demoted. These are required
for the L2 simulator proxy CI testbed.
2022-06-03 16:40:46 -07:00
Robert Schmidt
43701ddbd6 Phy-test scheduler: update MCS so it is shown in logs 2022-06-03 17:11:05 +02:00
Robert Schmidt
dd801325d4 Terminate LOG with newline 2022-06-03 17:10:03 +02:00
Robert Schmidt
db2c03d31d Do not abort ULSCH decoding in phy-test mode
For the RAN-gNB-nrUE-MONO-TDD-Band78-N300 test, in order to measure ULSCH
decoding times, we cannot abort ULSCH decoding on DTX.
2022-06-03 17:06:24 +02:00
Robert Schmidt
d5165ae2bd B210 tutorial: mention USB3 2022-06-03 12:50:44 +02:00
Robert Schmidt
9b317eacef Add instructions on how to tune Ethernet connection 2022-06-03 12:50:44 +02:00
KARIM BOUTIBA
cd4bc84bd8 small fix in nr_sdap_get_entity 2022-06-02 08:05:21 +00:00
francescomani
b96df49e15 postpone initialization of UL_tti_req_ahead to when sl_ahead is available 2022-06-01 17:09:08 +02:00
francescomani
a531342054 update ss and coreset after updating bwp 2022-06-01 12:35:31 +02:00
Roberto Louro Magueta
2c3eb996a4 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
2022-06-01 11:06:49 +01:00
francescomani
9a43678ed0 Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-06-01 09:06:57 +02:00
francescomani
13ed1200b4 Merge remote-tracking branch 'origin/develop' into NR_coreset_harmonization 2022-06-01 08:45:35 +02:00
Robert Schmidt
5ea828e149 Merge branch 'integration_2022_wk21b' into 'develop'
integration_2022_wk21b

See merge request oai/openairinterface5g!1572

MR !1490 add support for 15 kHz SCS
MR !1525 Make USRP tune-offset configurable
MR !1550 remove UEid in MAC
2022-06-01 06:12:20 +00:00
Francesco Mani
426bc2f088 fix in get_ul_tda call for rtx 2022-05-31 09:36:39 +00:00
francescomani
6f7889d162 bugfix in mod_dmrs declaration 2022-05-30 18:02:08 +02:00
Raymond Knopp
83d40a9b7c Add missing parameter preambleTransMax_CE_rel13
To SIB2 and its passing to RRC. Parameter was read but not transfered
before. Basic LTE-M functionality should ok on develop branch with this
fix. Tested with uBlox SARA-R4 (QCOM chipset)
2022-05-30 16:19:35 +02:00
Robert Schmidt
df8f632ae3 Make sched_csirs common to all UEs 2022-05-30 14:52:50 +02:00
Robert Schmidt
23c8336a37 Fix warning 2022-05-30 14:50:55 +02:00
Robert Schmidt
ac9e47ba68 Merge remote-tracking branch 'origin/cleanup-2022-mai-UEid-management' into integration_2022_wk21b 2022-05-30 12:02:58 +02:00
Laurent THOMAS
43033e20b6 Avoid SEGV in nr_decode_pucch0() 2022-05-28 16:44:50 +02:00
Laurent THOMAS
16e8154d71 Handle full UL TTI Req list more gracefully 2022-05-28 16:44:50 +02:00
Laurent THOMAS
9ba33d4dec Correctly format code to avoid warnings/ambiguities 2022-05-28 16:44:49 +02:00
Laurent THOMAS
a51c1f93b5 Remove unused code 2022-05-28 16:37:47 +02:00
Robert Schmidt
b6adb32989 Delete commented code 2022-05-28 16:37:47 +02:00
Laurent THOMAS
236f7d56e5 Remove UEid in the MAC
After this commit, only the RNTI is used as an identifier in the MAC.
Further, it removes some module_id, but a lot of them remain (the goal
to remove all is still far from us)
2022-05-28 16:37:26 +02:00
rmagueta
6bca31c7e3 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
2022-05-27 10:18:13 +01:00
francescomani
92ba8cb9d0 Merge remote-tracking branch 'origin/develop' into NR_coreset_harmonization 2022-05-27 10:46:15 +02:00
Robert Schmidt
daad3da6eb Merge remote-tracking branch 'origin/usrp-tune-offset' into integration_2022_wk21b 2022-05-27 10:06:20 +02:00
Robert Schmidt
21a820b061 Merge remote-tracking branch 'origin/support-15-kHz-SCS' into integration_2022_wk21b 2022-05-27 10:05:57 +02:00
Robert Schmidt
72d0a4ff05 Merge branch 'integration_2022_wk21' into 'develop'
integration_2022_wk21

See merge request oai/openairinterface5g!1564
2022-05-27 07:49:38 +00:00
francescomani
9228f12d92 bugfix 2022-05-26 13:47:17 +02:00
francescomani
09ecb8a33c bugfix in fill_searchSpaceZero 2022-05-25 10:35:26 +02:00
Robert Schmidt
36a02913de Merge remote-tracking branch 'origin/usrp_x400_fixup' into integration_2022_wk21 2022-05-24 17:58:47 +02:00
Robert Schmidt
360d4b3a81 Merge remote-tracking branch 'origin/k2-slot0-fix' into integration_2022_wk21 2022-05-24 17:57:58 +02:00
Robert Schmidt
103e21a05c Merge remote-tracking branch 'origin/NR_removing_calculate_preferred_tda' into integration_2022_wk21 2022-05-24 17:56:38 +02:00
francescomani
cf7c2fd373 commenting out further call to decode sib1 after initial access 2022-05-24 15:10:53 +02:00
Roberto Louro Magueta
ab1df8bbc4 Revert CSI configuration from update_cellGroupConfig to fill_initial_SpCellConfig 2022-05-24 13:45:35 +01:00
laurent
1450e2fb9f issue 545 2022-05-24 13:29:05 +02:00
Florian Kaltenberger
38f7d772e6 small fix for USRP X410 2022-05-24 10:55:50 +02:00
francescomani
3c753aec71 fix in calling get_ul_tda 2022-05-23 18:41:10 +02:00
Robert Schmidt
3b28264374 Merge remote-tracking branch 'origin/fix-ra-on-frame-1023' into integration_2022_wk21 2022-05-23 17:18:39 +02:00
Robert Schmidt
ba73075ccd Merge remote-tracking branch 'origin/ul-dl-bler' into integration_2022_wk21 2022-05-23 17:17:47 +02:00
francescomani
3a0bccde30 fix for msg2 tda 2022-05-23 16:13:20 +02:00
francescomani
fac44b15e8 adding option for CSI slot 2022-05-23 16:13:20 +02:00
francescomani
25086576e5 simplyfying tda functions according to review 2022-05-23 16:07:10 +02:00
francescomani
c6498ccf58 addressing review 2022-05-23 16:07:10 +02:00
francescomani
d3f90a90fe removing calculate_preferred_ul_tda 2022-05-23 15:57:27 +02:00
francescomani
276b2d5e0c removing calculate_preferred_dl_tda 2022-05-23 15:48:29 +02:00
Robert Schmidt
e1b090cfaa Improve logging 2022-05-23 15:20:03 +02:00
Robert Schmidt
9f6b7dc6b9 Make USRP tune_offset configurable
UHD documentation: "A tune request instructs the implementation how to
tune the RF chain."

This commit makes this configurable, from nr-softmodem, nr-uesoftmodem,
lte-softmodem, and lte-uesoftmodem.
2022-05-23 15:20:03 +02:00
Robert Schmidt
9354d4305b Set k2=2 also in 5ms TDD periods
In the past, setting k2=2 for 5ms TDD periods resulted in increased ping
RTT and/or reestablishment requests. These problems do not appear
anymore, and we can allow k2=2.
2022-05-23 15:11:27 +02:00
Robert Schmidt
00d021c66b In TDD: enable slot 0
In the past, activation of slot 0 (i.e., after the switch UL->DL)
resulted in many retransmissions. This does not seem to be the case
anymore, and we can therefore activate slot 0 also in TDD.
2022-05-23 14:33:08 +02:00
francescomani
2ba71e748d using bwp id to configure coreset id 2022-05-23 13:39:56 +02:00
francescomani
a724c1febc starting timer for msg4 at transmission 2022-05-20 15:09:25 +02:00
francescomani
fcfc7a90e8 fix for asan assertion 2022-05-20 13:56:12 +02:00
Robert Schmidt
7bf5f018a1 Refactor DRB configuration in function 2022-05-19 18:40:54 +02:00
Robert Schmidt
a5d0615048 Harmonize SRB configuration in function 2022-05-19 18:28:55 +02:00
KARIM BOUTIBA
b46077c22d add multiple pdu session support (tested with 2 pdu sessions) 2022-05-19 18:28:55 +02:00
francescomani
9150dc8c50 applying review comment 2022-05-19 14:48:45 +02:00
Roberto Louro Magueta
3d5cfb6642 Update the spatialRelationInfoToAddModList for dedicated UL-BWPs 2022-05-18 17:00:05 +01:00
francescomani
d56f2c8e12 addressing review comments 2022-05-18 17:36:32 +02:00
francescomani
6d736db22d applying PUCCH harmonization to multiple BWP 2022-05-18 17:23:55 +02:00
Roberto Louro Magueta
436eb2d5a9 Fix PUCCH config in fill_default_uplinkBWP to consider the enabled CSI-RS 2022-05-18 16:05:38 +01:00
Robert Schmidt
3ca4cb708c Select UL MCS from BLER 2022-05-18 16:44:54 +02:00
Robert Schmidt
34b821433b Add UL BLER options and read from config 2022-05-18 16:44:54 +02:00
Robert Schmidt
17cbc4dbf4 Generalize get_mcs_from_bler() 2022-05-18 16:44:54 +02:00
Robert Schmidt
26c2c0add8 MAC stats: group UL&DL common stats 2022-05-18 16:44:54 +02:00
Robert Schmidt
61d434339e DL MCS: switch back to 9 on inactivity 2022-05-18 16:44:54 +02:00
Robert Schmidt
1fbf968676 Set DL MCS when receiving CQI report
- Introduce generic get_mcs_from_cqi() that gets MCS for a particular
  CQI
- Set MCS after receiving CQI
- Distinguish "global" max MCS from UE-measured max MCS
2022-05-18 16:44:53 +02:00
Roberto Louro Magueta
2d96262d7c Fix channel estimation based on CSI-RS 2022-05-18 14:31:13 +01:00
francescomani
0c5d6a59e7 Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-05-18 15:19:00 +02:00
Roberto Louro Magueta
e5c4e0f3d3 Address review comments 2022-05-18 12:59:24 +01:00
Roberto Louro Magueta
f94a479829 Fix warning after merge 2022-05-18 12:51:18 +01:00
francescomani
03e869ee36 applying harmonization function also to multiple BWP option 2022-05-18 11:54:15 +02:00
francescomani
1e4f509805 Merge remote-tracking branch 'origin/develop' into NR_coreset_harmonization 2022-05-18 11:41:07 +02:00
Thomas Schlichter
e639e79220 Merge remote-tracking branch 'origin/develop' into support-15-kHz-SCS 2022-05-18 10:51:19 +02:00
francescomani
085014f601 Merge remote-tracking branch 'origin/develop' into NR_remove_ssb_offset_from_configfile 2022-05-18 10:25:47 +02:00
Thomas Schlichter
3934f2020e slightly increase the target SNR for the nr_dlsim low SNR test to make the test more reliable 2022-05-18 09:54:59 +02:00
Thomas Schlichter
6f8b13c2ad fix nr_ulsim option "-i" has no further parameters 2022-05-18 09:50:37 +02:00
Thomas Schlichter
c97d5d04ed fixes from review 2022-05-18 09:35:01 +02:00
francescomani
1f49b73eac Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-05-18 08:55:40 +02:00
Roberto Louro Magueta
8ac68929bc Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/PHY/defs_nr_common.h
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
2022-05-17 19:13:38 +01:00
Thomas Schlichter
44a98a85c5 Merge remote-tracking branch 'origin/develop' into 5g-nr-low-snr-performance 2022-05-17 17:38:59 +02:00
Robert Schmidt
5bf454c78b Merge branch 'integration_2022_wk19b' into 'develop'
integration_2022_wk19b

See merge request oai/openairinterface5g!1555

MR !1357: Bupt UL-MIMO
MR !1516: NR handling 2-port PMI report
MR !1454: Implementation of multiple dedicated BWPs
MR !1556: Fix RAN-gNB-nrUE-MONO-TDD-Band78-N300 pipeline
2022-05-17 12:03:56 +00:00
Robert Schmidt
22944fb8c0 Merge remote-tracking branch 'origin/repair-test-caracal' into integration_2022_wk19b 2022-05-16 21:41:39 +02:00
Robert Schmidt
6c43cdf4dc Hack to prevent segfault 2022-05-16 21:39:06 +02:00
luis_pereira87
bdc4a664ac Add 5G SA end-to-end, step-by-step, tutorials for OAI CN5G, OAI gNB and COTS UE 2022-05-16 11:49:42 +01:00
laurent
a254545b7c fix ra bug 2022-05-16 09:31:29 +02:00
luis_pereira87
486e9e2381 Merge remote-tracking branch 'origin/Dedicated-BWPs' into integration_2022_wk19b
# Conflicts:
#	openair1/SIMULATION/NR_PHY/ulsim.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-05-13 15:58:56 +01:00
luis_pereira87
cc238a91e4 Compute TDA startSymbolIndex and nrOfSymbols everytime function nr_set_pdsch_semi_static is called 2022-05-13 15:13:21 +01:00
Robert Schmidt
9b2fa3ca63 Increase PUSCH decoding defaults 2022-05-13 14:14:47 +02:00
Robert Schmidt
1c4bf40248 Fix caracal perf test: add option for N300, run only once (is consistent) 2022-05-13 11:57:31 +02:00
rmagueta
64f4d34c25 Fix tda in dlsim considering the new configuration for NSA in fill_default_nsa_downlinkBWP 2022-05-12 20:40:22 +01:00
Robert Schmidt
a9dcdcbbcb Fix name of html module 2022-05-12 20:54:02 +02:00
Robert Schmidt
09c3597b46 Only check T tracer if EPC has been defined 2022-05-12 18:47:47 +02:00
luis_pereira87
54f49fd253 Remove duplicated code for bwp common validation 2022-05-12 17:33:35 +01:00
luis_pereira87
2f3ce42d3b Improve code readability in fix_scd function 2022-05-12 17:04:09 +01:00
Robert Schmidt
851291ddc4 Merge remote-tracking branch 'origin/NR_handling_PMI_report' into integration_2022_wk19b 2022-05-12 17:45:59 +02:00
luis_pereira87
9f51b3f8b1 Harmonize and reuse the nr_rrc_config_dl_tda function to prepare PDSCH-TimeDomainResourceAllocation list 2022-05-12 14:42:47 +01:00
luis_pereira87
7d1f693ba1 Revert rbSize validation with target_dl_bw to previous version 2022-05-12 13:28:18 +01:00
luis_pereira87
af377945c3 Fix hardcoded coreset and assignment from wrong array position 2022-05-12 13:12:45 +01:00
luis_pereira87
9aa7d1c88f Remove redundant change of active bwp (it changes after RRC processing timer elapsed) 2022-05-12 10:57:03 +01:00
luis_pereira87
0217cd50de Update in documentation 2022-05-12 10:06:00 +01:00
luis_pereira87
270c540c3c Minor clean up in function mac_rrc_nr_data_req 2022-05-12 10:06:00 +01:00
francescomani
c4c93cc498 Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-05-12 08:56:45 +02:00
luis_pereira87
3c4ba50281 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-05-11 14:49:59 +01:00
francescomani
340531038c bugfix: n1 and n2 for 2 ports 2022-05-11 15:21:08 +02:00
Roberto Louro Magueta
5c754f2300 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
2022-05-11 14:19:33 +01:00
francescomani
6ded64f86d Merge remote-tracking branch 'origin/develop' into NR_handling_PMI_report 2022-05-11 15:14:56 +02:00
Roberto Louro Magueta
4c1b432718 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4
# Conflicts:
#	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
2022-05-11 13:45:56 +01:00
francescomani
1fbc7e080b addressing review 2022-05-11 08:50:29 +02:00
Robert Schmidt
68be6f83e6 randominit(): show used seed when using time() 2022-05-10 14:22:50 +02:00
francescomani
c7e8002d8d adding CI test with subcarrier offset in pbchsim 2022-05-10 11:43:44 +02:00
francescomani
3b16547374 fix in pbchsim 2022-05-10 09:13:52 +02:00
francescomani
a037987b47 remove ssb subcarrier offset from config file 2022-05-09 18:28:56 +02:00
rmagueta
d7795c9dff Fix build after merge 2022-05-06 16:15:43 +01:00
luis_pereira87
c587fe366d Improve log and cosmetic changes 2022-05-06 16:06:31 +01:00
luis_pereira87
5031649c47 Improvements on BWP switch procedures and harmonize it with RRC processing timer 2022-05-06 16:06:31 +01:00
francescomani
59ced82104 Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-05-06 17:02:22 +02:00
rmagueta
b8cd9ef167 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/RRC/NR/rrc_gNB_nsa.c
2022-05-06 15:41:10 +01:00
luis_pereira87
02d49ed3b6 Fixes after merge 2022-05-06 11:56:11 +01:00
Roberto Louro Magueta
87e79e5eb8 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
#	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.106PRB.usrpn300.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
2022-05-06 11:32:36 +01:00
luis_pereira87
a8e6bf9bd5 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/GNB_APP/gnb_config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/RRC/NR/L2_nr_interface.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.h
#	openair2/RRC/NR/nr_rrc_defs.h
#	openair2/RRC/NR/nr_rrc_proto.h
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-05-06 11:29:55 +01:00
francescomani
2bbfe501c2 Merge remote-tracking branch 'origin/develop' into NR_coreset_harmonization 2022-05-06 12:02:00 +02:00
francescomani
1750f45708 additional fix for dmrs 2022-05-06 11:46:07 +02:00
francescomani
acc6fb8508 fixes for multi-symbol pdcch 2022-05-06 11:17:19 +02:00
francescomani
edea5c5f65 some more fixes for larger coresets 2022-05-05 17:23:12 +02:00
francescomani
40fcfdea8b additional fixes 2022-05-04 18:20:12 +02:00
francescomani
4045874d74 memory fixes 2022-05-04 16:56:23 +02:00
francescomani
999f5d67e3 bugfixes and improvements in handling dci candidates 2022-05-04 11:03:26 +02:00
Raymond Knopp
bf5389936d added deletion/creation of ldpc_gen_files directory and subdirectories 2022-05-03 22:09:46 +02:00
Raymond Knopp
3ecfead572 added script to generate ldpc decoder files 2022-05-03 22:03:19 +02:00
Raymond Knopp
63b28d3610 clean up (removal) of ldpc generated files on repository 2022-05-03 21:26:18 +02:00
Roberto Louro Magueta
f2974b431b Revert transformPrecoder to transform_precoding 2022-05-03 19:25:14 +01:00
Roberto Louro Magueta
7aa3bfaa54 Revert deleted rfdevice.trx_end_func() 2022-05-03 18:25:57 +01:00
luis_pereira87
d059c71754 Clean up and minor improvements in configuration files 2022-05-03 16:08:18 +01:00
luis_pereira87
8641d54f4d Fix build after merge 2022-05-03 15:56:18 +01:00
luis_pereira87
1e38cead39 Increase MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER to allow gNB to work with 273PRBs and 256QAM at MCS 27 2022-05-03 15:40:47 +01:00
luis_pereira87
7597a582f9 Merge remote-tracking branch 'origin/NR_RRC_processing_timer' into Dedicated-BWPs
# Conflicts:
#	openair2/GNB_APP/gnb_config.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
2022-05-03 14:00:57 +01:00
francescomani
cfa37e7213 cosmetic changes 2022-05-03 12:21:47 +02:00
Roberto Louro Magueta
2162ba6d82 Fix sigma in ulsim 2022-05-03 10:03:56 +01:00
Roberto Louro Magueta
e3fd9f7f8c To use the channel generated by multipath_channel() for single-layer case in ulsim 2022-05-03 00:29:44 +01:00
Roberto Louro Magueta
b6a018089b Fix in nr_ulsch_extract_rbs 2022-05-02 23:53:13 +01:00
Raymond Knopp
8506307ef0 Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen
Conflicts:
	cmake_targets/build_oai
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
	openair1/PHY/NR_REFSIG/ptrs_nr.c
2022-05-02 22:41:48 +02:00
Roberto Louro Magueta
3d5fa54a48 Fix logs in help of ulsim 2022-05-02 19:07:07 +01:00
Roberto Louro Magueta
5de85671d8 Fix heap buffer overflow 2022-05-02 16:58:08 +01:00
francescomani
6b6528cc94 revert H_awgn_mimo in simulator 2022-05-02 10:41:42 +02:00
Roberto Louro Magueta
4f2854f92c Fix UL channel estimation for 4 layers 2022-05-02 01:55:03 +01:00
rmagueta
0e2a00655e Fix build after merge 2022-04-30 17:07:14 +01:00
rmagueta
d01cd03ad3 Merge branch 'NR_RRC_processing_timer' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-04-30 16:40:58 +01:00
rmagueta
2ddb68754e Merge remote-tracking branch 'origin/develop' into NR_RRC_processing_timer
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
2022-04-30 16:22:09 +01:00
rmagueta
4b3aa7233e Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
2022-04-30 15:14:20 +01:00
Roberto Louro Magueta
1694e1b061 Fix b_shift 2022-04-29 19:08:41 +01:00
Roberto Louro Magueta
523f8f2139 Put pilot_cnt++ in the right place 2022-04-29 18:19:49 +01:00
Roberto Louro Magueta
8ba0f2f086 Fix high MCS test fail for UL (it do not fix the degradation yet) 2022-04-29 11:00:40 +01:00
Thomas Schlichter
7815293443 Merge remote-tracking branch 'origin/develop' into support-15-kHz-SCS 2022-04-29 10:15:15 +02:00
Roberto Louro Magueta
e236794310 Put in ulsim a channel matrix H_awgn_mimo different from identity (it is a matrix equal to matrix used in dlsim) 2022-04-29 01:22:33 +01:00
Roberto Louro Magueta
c128a5d9e2 Remove SUPPORT_PMI_MATRIC flag 2022-04-29 01:11:27 +01:00
Roberto Louro Magueta
719d7fb8be Improvements in UL channel estimation to consider multiple antennas for dmrs type 1 2022-04-29 00:51:55 +01:00
Roberto Louro Magueta
724e155a3a Move UL delta computation for a function 2022-04-28 23:57:19 +01:00
Roberto Louro Magueta
927e219553 UL channel estimation with a formulation closer to 3GPP, because this will be useful next 2022-04-28 21:04:41 +01:00
Roberto Louro Magueta
badb6cb590 Improve debug log 2022-04-28 16:24:21 +01:00
Roberto Louro Magueta
735b51a06b Third code simplification in UL channel estimation 2022-04-28 15:03:26 +01:00
Roberto Louro Magueta
4ecb0401e0 Second code simplification in UL channel estimation 2022-04-28 14:34:43 +01:00
Roberto Louro Magueta
65f09fecb8 First code simplification in UL channel estimation 2022-04-28 14:18:05 +01:00
francescomani
b6016cfc49 Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-04-28 14:12:11 +02:00
francescomani
5e1364f19d Merge remote-tracking branch 'origin/develop' into NR_handling_PMI_report 2022-04-28 13:57:17 +02:00
Roberto Louro Magueta
99fde7f7cb Fix some needed debug logs considering the multi-layer case 2022-04-28 11:50:27 +01:00
Roberto Louro Magueta
b56494855e Merge remote-tracking branch 'origin/bupt-ulmimo-4' into bupt-ulmimo-4 2022-04-28 11:24:08 +01:00
francescomani
d05f2b3add Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-04-28 11:54:51 +02:00
francescomani
6af3d0a364 change in ulsim test to show degradation in performances for 2rx scenario 2022-04-28 11:27:27 +02:00
francescomani
f902e27c43 updates on coreset harmonization 2022-04-27 16:24:05 +02:00
Roberto Louro Magueta
7e172e348b Fix from frame_parms->nb_antennas_tx to UE->frame_parms.nb_antennas_tx in ulsim 2022-04-27 11:51:29 +01:00
Roberto Louro Magueta
cb456a23cc Fix in atxlev computation in ulsim (the loop should be over nb_antennas_tx and not nb_antennas_rx) and remove wrong sigma_dB computation 2022-04-26 20:25:53 +01:00
Roberto Louro Magueta
ac5444afd9 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-04-26 19:18:08 +01:00
francescomani
7e6f8ecfb3 fixing bugs and cleaning up ulsim 2022-04-26 10:59:25 +02:00
francescomani
697d72cd01 adding missing parameter in ulsim 2022-04-22 18:51:53 +02:00
francescomani
f57f4ce3fe bugfix in channel compensation 2022-04-22 09:56:54 +02:00
luis_pereira87
aeaf4c87b5 Fix delay of CU for a very large cellGroupConfig 2022-04-20 20:19:56 +01:00
francescomani
f49df05456 fix for ulschsim antenna ports 2022-04-20 18:55:38 +02:00
luis_pereira87
5887541538 Fix segmentation fault when using multiple Dedicated-BWPs and F1 2022-04-20 17:16:49 +01:00
francescomani
15777bbf0e fix for ulsim antenna ports 2022-04-20 17:05:03 +02:00
luis_pereira87
efd99acacc Fix read SSpace array index at -1 2022-04-20 15:51:02 +01:00
luis_pereira87
709db95112 Fix DL/UL failure due to wrong dedicated BWP when an RA fails on Msg4 and then succeeds 2022-04-19 18:59:56 +01:00
luis_pereira87
e59ac44c94 Merge branch 'NR_RRC_processing_timer' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/RRC/NR/nr_rrc_defs.h
#	openair2/RRC/NR/rrc_gNB.c
2022-04-19 18:34:42 +01:00
luis_pereira87
8e4c513805 Fix RRC processing time when using F1 split 2022-04-19 18:07:45 +01:00
luis_pereira87
55f1a6b4da Stop the scheduling of CSI-RS, of CSI measurement report reception on PUCCH2 and of reception of SRS 2022-04-19 17:28:48 +01:00
luis_pereira87
72f40e6fb1 Add definition for some rrc processing delays 2022-04-19 17:04:05 +01:00
luis_pereira87
7508205f90 Move nr_mac_update_timers function to gNB_scheduler_primitives 2022-04-19 16:39:49 +01:00
luis_pereira87
5c176c454a Fix mcs table update during RRCReconfiguration 2022-04-19 16:34:10 +01:00
luis_pereira87
bd7f837f18 Fix after merge 2022-04-19 13:23:17 +01:00
luis_pereira87
44c0c8d321 Merge branch 'NR_RRC_processing_timer' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/RRC/NR/L2_nr_interface.c
#	openair2/RRC/NR/rrc_gNB.c
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf
2022-04-19 12:39:28 +01:00
Thomas Schlichter
795c057d8c nr_dlsim: fix low-SNR performance by using DCI aggregation level 8 2022-04-19 11:32:47 +02:00
luis_pereira87
a39c310bd4 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
2022-04-19 10:21:57 +01:00
rmagueta
6b873e0f41 Merge remote-tracking branch 'origin/develop' into develop-CSI 2022-04-18 10:26:46 +01:00
francescomani
a71552d55d harmonization of coreset configuration 2022-04-15 19:21:34 +02:00
matzakos
9b2a163ebb Add true reporting of RLC buffer availability in first DDD report from DU to CU 2022-04-15 10:36:31 +02:00
matzakos
3feb0f472f Add more proper parsing of NR-RAN gtp-u extension header 2022-04-15 10:35:39 +02:00
matzakos
b216c58526 Remove xml prints of F1AP messages 2022-04-15 10:34:53 +02:00
luis_pereira87
7b5d8de65f Remove sib1_tda from configuration files to use the default value 2022-04-14 15:52:54 +01:00
luis_pereira87
0270b7b1fb Move RRC processing timer implementation from RRC to MAC 2022-04-14 15:49:29 +01:00
luis_pereira87
ada380d9fd Merge remote-tracking branch 'origin/develop' into NR_RRC_processing_timer 2022-04-14 11:46:52 +01:00
Raymond Knopp
e721f6af04 Merge remote-tracking branch 'origin/tdd25period_for_MR' into F1_interop_ACC_n78
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
2022-04-14 11:14:36 +02:00
matzakos
f9e5c987a6 Merge remote-tracking branch 'origin/develop' into F1C_extensions_develop 2022-04-13 14:22:19 +02:00
matzakos
0c05e283e2 Remove warnings and unused code 2022-04-13 13:19:04 +02:00
rmagueta
a81640a6df Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/PHY/INIT/nr_init_ue.c
#	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
2022-04-13 10:21:09 +01:00
francescomani
cfda6c7b1d renaming SR config function 2022-04-13 10:58:28 +02:00
rmagueta
d6072cb5d2 Fix build after merge 2022-04-12 14:31:39 +01:00
rmagueta
d5421a9c87 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/PHY/INIT/nr_init.c
#	openair1/PHY/NR_REFSIG/nr_refsig.h
#	openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
#	openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.h
2022-04-12 14:02:43 +01:00
francescomani
e6913e5d33 Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-04-12 10:41:20 +02:00
francescomani
11ced194cd Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-04-12 10:28:32 +02:00
francescomani
02b66061b1 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-04-12 10:14:21 +02:00
Thomas Schlichter
94e5aaff88 Merge remote-tracking branch 'origin/develop' into 5g-nr-low-snr-performance 2022-04-12 09:51:47 +02:00
matzakos
47c9ded007 Use higher data type to store the length of UE capability RAT container 2022-04-11 19:53:36 +02:00
matzakos
bfc7c1b361 Remove bad return before unlocking mutex in pdcp UL indication 2022-04-11 19:35:05 +02:00
luis_pereira87
0689040770 Merge remote-tracking branch 'origin/NR_RRC_processing_timer' into Dedicated-BWPs 2022-04-11 13:50:32 +01:00
luis_pereira87
940abc3587 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs 2022-04-11 13:49:40 +01:00
rmagueta
8c056ceefc Merge remote-tracking branch 'origin/develop' into develop-CSI 2022-04-08 18:19:06 +01:00
francescomani
1ab64d26aa Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-04-08 16:50:02 +02:00
Raymond Knopp
5962824038 Integrate true reporting of buffer availability of RLC(DU) towards the CU 2022-04-07 16:34:16 +02:00
Thomas Schlichter
4035bdb71d add autotest test case for nr_dlsim low SNR performance
performance is ~1.0dB worse than nr_ulsim because of unexpected bad PDCCH performance...
2022-04-07 12:20:33 +02:00
Thomas Schlichter
298740b06c add autotest test case for nr_ulsim low SNR performance 2022-04-07 12:12:20 +02:00
Thomas Schlichter
c7055b2cf9 nr_ulsim: set PUSCH detection threshold to -2.0 dB SNR 2022-04-07 12:08:26 +02:00
Thomas Schlichter
23bdf1e32c remove unused perfect_ce 2022-04-07 11:45:26 +02:00
Thomas Schlichter
dd374c7e03 add more detailed statistics to nr_dlsim output 2022-04-07 11:45:26 +02:00
Bo Zhao
7f074bcc22 Implement PDCCH channel estimation averaging over PRB (no interpolation) 2022-04-07 10:42:03 +02:00
Bo Zhao
fe7ee4d2fe Scaling LLR for different QAM schemes 2022-04-07 10:40:53 +02:00
Thomas Schlichter
e297ccfa26 Add nr_prachsim test case for 15 kHz SCS 2022-04-07 10:34:37 +02:00
luis_pereira87
2b1cafb509 Do not create a Dedicated BWP when it is not configured in the configuration file 2022-04-06 18:06:02 +01:00
luis_pereira87
e4536a093f Merge remote-tracking branch 'origin/NR_RRC_processing_timer' into Dedicated-BWPs 2022-04-06 17:26:38 +01:00
rmagueta
eb03322545 Change LOG level 2022-04-06 13:18:46 +01:00
luis_pereira87
1a3c8e5440 Merge remote-tracking branch 'origin/develop' into NR_RRC_processing_timer
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
2022-04-06 11:52:55 +01:00
rmagueta
c65593d088 Fix build after merge 2022-04-06 11:06:55 +01:00
rmagueta
345f3056ff Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
#	openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
#	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/LAYER2/NR_MAC_gNB/mac_proto.h
2022-04-06 10:51:43 +01:00
rmagueta
4f29c73bb6 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
2022-04-06 10:11:49 +01:00
francescomani
4f486ce66b Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-04-06 11:02:53 +02:00
matzakos
693d687d3f Restore nr_l1_helpers.h and dependencies 2022-04-06 10:57:36 +02:00
matzakos
0eb2acb00b F1 code cleanup before merge
-Remove commented out code, debug logs, some hardcodings, fix indentation
2022-04-06 10:43:09 +02:00
francescomani
f0ea21476a Merge remote-tracking branch 'origin/develop' into NR_handling_PMI_report 2022-04-06 10:04:20 +02:00
luis_pereira87
6ccaaacaf0 Merge remote-tracking branch 'origin/develop' into NR_RRC_processing_timer
# Conflicts:
#	openair2/RRC/NR/rrc_gNB.c
#	openair2/RRC/NR/rrc_gNB_nsa.c
2022-04-05 12:46:14 +01:00
luis_pereira87
4d257e1a99 Fix build after merge 2022-04-05 12:03:22 +01:00
luis_pereira87
f8af4c8b72 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/RRC/NR/L2_nr_interface.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.h
#	openair2/RRC/NR/rrc_gNB.c
#	openair2/RRC/NR/rrc_gNB_nsa.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-04-05 11:47:23 +01:00
rmagueta
a772400ffa Fix memory leak 2022-04-04 13:14:18 +01:00
rmagueta
2d434033e0 Merge remote-tracking branch 'origin/develop' into develop-CSI 2022-04-04 12:35:25 +01:00
francescomani
0152e8ce38 fix dlsim compilation error 2022-04-03 20:26:05 +02:00
francescomani
4c17c9c62a change SR slot in FDD to avoid assertion 2022-04-03 18:15:17 +02:00
francescomani
7901ff998d Merge remote-tracking branch 'origin/develop' into NR_handling_PMI_report 2022-04-03 16:38:32 +02:00
francescomani
ed9c35a170 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-04-03 16:20:59 +02:00
francescomani
e1e8c167de Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-04-01 19:21:45 +02:00
rmagueta
25614263ba Fix build after merge 2022-04-01 16:15:58 +01:00
rmagueta
c83df1b677 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/PHY/INIT/nr_init_ue.c
#	openair2/GNB_APP/gnb_config.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.h
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
2022-04-01 15:56:47 +01:00
Thomas Schlichter
729cf143e0 Merge remote-tracking branch 'origin/develop' into support-15-kHz-SCS 2022-04-01 10:28:11 +02:00
francescomani
6e6f9a53a1 Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-03-31 10:46:02 +02:00
francescomani
cb32c7505e tabulated values * 10 to simplify the code 2022-03-30 19:08:20 +02:00
Raymond Knopp
a77c1d3202 Trigger first DL Data Delivery status from DU to report the buffer availability to the CU
-After that no DL traffic is getting blocked at the Accelleran CU for low values of throughput
-Remaining to remove the hardcoded value of buffer availability and report the actual value from the DU.
2022-03-29 12:17:37 +02:00
matzakos
038e70b0c6 Merge remote-tracking branch 'origin/develop' into F1C_extensions_develop 2022-03-28 21:55:21 +02:00
matzakos
90c64f4cf8 Merge remote-tracking branch 'origin/develop' into F1C_extensions_develop 2022-03-28 21:20:49 +02:00
rmagueta
139a33d644 Remove multiple nr_gold_csi_rs initializations 2022-03-28 14:36:01 +01:00
rmagueta
e322bdb289 Fix warning after merge 2022-03-28 14:10:39 +01:00
rmagueta
181e576698 Fix warning after merge 2022-03-28 13:53:35 +01:00
rmagueta
0abcf3d9c4 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/PHY/INIT/nr_init.c
#	openair1/PHY/INIT/nr_init_ue.c
#	openair1/PHY/NR_REFSIG/nr_gold.c
#	openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
#	openair1/PHY/defs_nr_common.h
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2022-03-28 13:32:46 +01:00
rmagueta
8e5ea001b1 Fix warning after merge 2022-03-28 11:57:29 +01:00
rmagueta
c11f6082a6 Merge remote-tracking branch 'origin/develop' into NR_RRC_processing_timer
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2022-03-28 11:57:07 +01:00
rmagueta
3b3866feee Fix warning after merge 2022-03-28 11:17:59 +01:00
rmagueta
9daef4e587 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2022-03-28 11:17:00 +01:00
francescomani
c6b4f97d19 coderate according to SCF and get tbs,qm,R only at MAC 2022-03-26 13:37:34 +01:00
rmagueta
6c1f1a02bb Avoid CU from trying to access RC.nrmac 2022-03-25 16:11:34 +00:00
rmagueta
d5f431a1fd Move nr_bwp_switch and schedule_nr_bwp_switch functions to gNB_scheduler_primitives.c 2022-03-25 15:29:41 +00:00
rmagueta
94a296d79c Fix selected BWP for SRS at UE 2022-03-25 15:07:16 +00:00
rmagueta
5f64d2a1db Avoid CU from trying to access RC.nrmac 2022-03-25 01:51:04 +00:00
rmagueta
11577f6b0b Fix DU to CU RRC message encode 2022-03-25 01:01:29 +00:00
rmagueta
a1739a1175 Avoid segmentation fault 2022-03-25 00:59:43 +00:00
rmagueta
6d4bd11903 Merge remote-tracking branch 'origin/fix_rballoc_mask_type' into Dedicated-BWPs 2022-03-24 14:25:19 +00:00
Thomas Schlichter
88c0028757 Merge remote-tracking branch 'origin/develop' into support-15-kHz-SCS 2022-03-24 11:39:22 +01:00
luis_pereira87
5d6d25c972 Fix RIV value for 162 PRBs, update and synchronization of configuration files 2022-03-23 22:34:32 +00:00
luis_pereira87
9c45ee05bb Fix RIV value for 162 PRBs 2022-03-23 22:27:48 +00:00
luis_pereira87
7ba2517334 Improve nr_rrc_processing_timer to support BWP switching 2022-03-23 20:20:12 +00:00
francescomani
d36549f80a fix memory issues 2022-03-23 19:15:02 +01:00
luis_pereira87
345b66c77f Merge remote-tracking branch 'origin/NR_RRC_processing_timer' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
2022-03-23 17:21:34 +00:00
luis_pereira87
4510041aa6 Fix RRC processing time to match RRC ticks (at 1 ms) and add implementation for RRCSetup processing time 2022-03-23 17:08:36 +00:00
luis_pereira87
d0f6174fea Remove obsolete code 2022-03-23 14:15:16 +00:00
luis_pereira87
2706b1641e Merge remote-tracking branch 'origin/NR_RRC_processing_timer' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
2022-03-23 14:01:37 +00:00
luis_pereira87
e95b40a997 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs 2022-03-23 13:57:27 +00:00
luis_pereira87
daf3fb0e2c Enable nr_rrc_processing_timer for RRCSetup 2022-03-23 13:29:07 +00:00
luis_pereira87
6f5ea27e09 Improve nr_rrc_processing_timer procedures 2022-03-23 13:11:04 +00:00
luis_pereira87
726cebaa9d Create function to enable nr_rrc_processing_timer 2022-03-23 11:17:52 +00:00
francescomani
07d20ba121 fix for memory issues 2022-03-23 09:58:55 +01:00
rmagueta
bc7a404629 Move rrc_processing_timer from MAC to RRC 2022-03-22 20:18:23 +00:00
luis_pereira87
f5c4ccf479 Merge remote-tracking branch 'origin/develop' into NR_RRC_processing_timer 2022-03-22 18:51:48 +00:00
francescomani
fb118a76a8 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-22 13:21:43 +01:00
rmagueta
7ae5abfbeb Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2022-03-22 12:07:14 +00:00
rmagueta
199680d24d Address reviewer comments 2022-03-21 17:37:29 +00:00
rmagueta
a9bbf18d9f Simplification of rrc_processing_delay computation 2022-03-21 17:14:50 +00:00
luis_pereira87
65e47c882f Handle RRC processing time at gNB 2022-03-21 14:35:41 +00:00
rmagueta
4ce795186b Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs 2022-03-21 11:23:08 +00:00
francescomani
4d289b92cc fix xp=1 option and added RUNMODEM description for MIMO configuration 2022-03-21 11:59:31 +01:00
francescomani
7b9f53e9db option for identity matrix if xp is 1 2022-03-21 10:01:13 +01:00
rmagueta
7ecd593f6b Fix memory leaks 2022-03-18 17:55:53 +00:00
luis_pereira87
f439095c6e Fix bug after merge 2022-03-17 18:19:42 +00:00
rmagueta
190eaa1e42 Move CSI-RS configuration from fill_initial_SpCellConfig() to update_cellGroupConfig() 2022-03-17 16:36:50 +00:00
rmagueta
8704f81025 Remove duplicated code 2022-03-17 16:35:06 +00:00
matzakos
4e73ef0c3b Avoid exiting in case of PDPC receiving UL user-plane traffic before the DRB is established
-Happened occasionally in the CU/DU split scenario
2022-03-17 17:01:50 +01:00
matzakos
aba5098e30 Remove hardcoding of port numbers in handling of F1 UE context modification request 2022-03-17 17:01:01 +01:00
rmagueta
b59b84e904 Merge remote-tracking branch 'origin/develop' into develop-CSI 2022-03-17 01:03:35 +00:00
rmagueta
ea22da6e7a Noise power estimation based on CSI-RS 2022-03-17 00:50:35 +00:00
rmagueta
2f2bc2a5e8 Merge remote-tracking branch 'origin/nr_csirs_rrc_harmonization' into develop-CSI
# Conflicts:
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/nr_rrc_config.c
#	openair2/RRC/NR/nr_rrc_config.h
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-03-16 17:45:39 +00:00
rmagueta
3f88cc1fb1 Intermediate commit: move CSI configuration to a separate function 2022-03-16 17:19:36 +00:00
rmagueta
2f9d8e759d Memory optimization for procedures related to CSI-RS channel estimation 2022-03-16 15:21:55 +00:00
francescomani
f40b579a78 fix for phy-simulator issues 2022-03-16 15:13:50 +01:00
rmagueta
f1eb2e15d4 Channel estimation based on CSI-RS and interpolation at UE working for a gNB with 4 antenna ports 2022-03-16 13:03:31 +00:00
rmagueta
8b0409d349 Channel estimation based on CSI-RS and interpolation working for a gNB with 2 antenna ports 2022-03-16 01:34:23 +00:00
rmagueta
e07f32f131 Merge remote-tracking branch 'origin/develop' into develop-CSI 2022-03-15 18:56:46 +00:00
rmagueta
ce1613ad7c Improvement in nr_get_csi_rs_signal() and nr_csi_rs_channel_estimation() to later be easier to extend to multiple ports 2022-03-15 18:55:50 +00:00
Thomas Schlichter
9ef3fdbc49 add autotests for nr_dlsim and nr_ulsim with 15 kHz SCS and 5 MHz BW 2022-03-15 09:45:36 +01:00
francescomani
8edcd41a8d fix for pucch0 that straddles DC carrier 2022-03-14 17:35:04 +01:00
Thomas Schlichter
6569ea1a20 fix use of uninitialized memory
found by valdgrind in nr_dlsim
2022-03-14 16:39:17 +01:00
Thomas Schlichter
1616ed7727 gNB: generalize rx_nr_prach_ru() and add support for mu==0 2022-03-14 16:39:17 +01:00
Thomas Schlichter
8f632a7c69 NR_UE: generalize generate_nr_prach() and add support for mu==0 2022-03-14 16:39:17 +01:00
Thomas Schlichter
15e82e4811 add support for mu==0 to nr_prachsim 2022-03-14 16:39:17 +01:00
Thomas Schlichter
31cd31826d move get_dft() and get_idft() from pss_nr.c to tools_defs.h 2022-03-14 16:39:17 +01:00
Thomas Schlichter
d104ef73b7 gNB: fix memory allocations for PUSCH in phy_init_nr_gNB() 2022-03-14 16:39:17 +01:00
Thomas Schlichter
9e90b8f22c remove unneeded global arrays ul_ch_ptrs_estimates, ul_ch_ptrs_estimates_ext, dl_ch_ptrs_estimates and dl_ch_ptrs_estimates_ext 2022-03-14 16:39:17 +01:00
Thomas Schlichter
4fd78ce1e0 small fixes for 15 kHz SCS 2022-03-14 16:39:17 +01:00
Thomas Schlichter
cbf57d7b3c Add configuration file for 15 kHz SCS, 5 MHz BW, band 66, FDD 2022-03-14 16:39:17 +01:00
Thomas Schlichter
47148e3f7d add NO_INTERP to nr_pdsch_channel_estimation() as it is in nr_pusch_channel_estimation() 2022-03-14 16:39:17 +01:00
Thomas Schlichter
4a90091095 fix init_timeshift_rotation() 2022-03-14 16:39:17 +01:00
Thomas Schlichter
baa2e92562 add support for 5 MHz (15 kHz SCS) and 10 MHz (30 kHz SCS) to nr_dlsim and nr_ulsim 2022-03-14 16:39:17 +01:00
rmagueta
e56f284347 Perform the channel interpolation for CSI-RS row 1 2022-03-14 15:29:10 +00:00
matzakos
12eed23f63 Merge remote-tracking branch 'origin/develop' into F1C_extensions_develop 2022-03-14 11:39:13 +01:00
francescomani
03617b9165 more general SR config for period and offset 2022-03-14 10:43:59 +01:00
luis_pereira87
e23e863e0f Merge remote-tracking branch 'origin/Dedicated-BWPs' into Dedicated-BWPs 2022-03-14 09:33:20 +00:00
luis_pereira87
3114060a38 Add configuration files for 217 PRBs (80 MHz) and 273 PRBs (100 MHz) BW in a Dedicated BWP 2022-03-14 09:32:33 +00:00
Thomas Schlichter
7e17f8bd6a make nr_ulsim PASS condition depend on eff_tp_check, just as nr_dlsim already does 2022-03-14 09:45:38 +01:00
Thomas Schlichter
a82d897478 Merge remote-tracking branch 'origin/nr-ue-fixes' into support-15-kHz-SCS 2022-03-14 09:36:29 +01:00
Thomas Schlichter
1e5c3c5707 Merge remote-tracking branch 'origin/develop' into fix_nr_odd_prb 2022-03-14 09:35:17 +01:00
francescomani
a88a8dae8e config of pucch2 in rrcsetup 2022-03-11 12:27:00 +01:00
francescomani
63ebfff4d3 Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-03-10 15:21:47 +01:00
luis_pereira87
b04957b57c Add configuration files for 217 PRBs (80 MHz) and 273 PRBs (100 MHz) BW in a Dedicated BWP 2022-03-10 13:19:40 +00:00
rmagueta
670f979f97 Perform the average of LS estimates over time for CSI-RS at UE 2022-03-09 20:00:41 +00:00
rmagueta
0126bd849b Remove redundant info from nr_csi_rs_info_t 2022-03-09 19:18:30 +00:00
Raymond Knopp
6abb1e362d Merge remote-tracking branch 'origin/tdd25period_for_MR' into F1_interop_ACC
Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/SCHED_NR/fapi_nr_l1.c
	openair1/SIMULATION/NR_PHY/dlschsim.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
	openair2/LAYER2/NR_MAC_gNB/main.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
	openair2/RRC/NR/nr_rrc_proto.h
	openair2/RRC/NR/rrc_gNB.c
	openair3/ocp-gtpu/gtp_itf.cpp
	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf
2022-03-09 19:16:23 +01:00
matzakos
14ec3e505d Fix decoding of UE-capabilities-RAT-container-list at the DU after receiving it from the CU 2022-03-09 19:08:15 +01:00
rmagueta
19d8ea2742 Minor optimizations 2022-03-09 17:59:32 +00:00
francescomani
06d488bb23 ulsch memory optimization 2022-03-09 17:35:38 +01:00
rmagueta
51a72b8479 LS channel estimation at UE based on CSI-RS 2022-03-09 15:07:23 +00:00
luis_pereira87
00c6a4bce5 Avoid segmentation fault 2022-03-08 19:14:42 +00:00
luis_pereira87
d058e2a6ed Increase RRC_BUF_SIZE to 1024 to solve encoding failure 2022-03-08 18:13:25 +00:00
luis_pereira87
19f532d450 Fix build after merge 2022-03-08 14:54:16 +00:00
luis_pereira87
a87e99ad69 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair1/PHY/TOOLS/lte_ue_scope.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-03-08 14:21:00 +00:00
rmagueta
db0ce84aa5 Fix FAPI for CSI-RS pdu and associated procedures 2022-03-08 13:18:17 +00:00
rmagueta
bbe806a870 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.h
#	openair2/RRC/NR/nr_rrc_config.c
#	openair2/RRC/NR/nr_rrc_config.h
#	openair2/RRC/NR/rrc_gNB.c
#	openair2/RRC/NR/rrc_gNB_nsa.c
2022-03-07 13:10:40 +00:00
francescomani
b8935b7761 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-07 10:37:48 +01:00
rmagueta
a77769d45b Fix build after merge 2022-03-05 02:32:34 +00:00
rmagueta
a634f14f74 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/nr_sch_dmrs.c
#	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
2022-03-05 01:58:51 +00:00
luis_pereira87
bb89ae3aca Delete duplicated prototype function (update to develop implementation) 2022-03-05 01:42:26 +00:00
rmagueta
de8aa24de5 Get CSI-RS symbols from received signal at UE 2022-03-05 01:37:38 +00:00
Raymond Knopp
2776ec78b0 Add initial support for DL Data Delivery status reporting over NR-User plane protocol in gtp-u 2022-03-03 17:21:59 +01:00
Raymond Knopp
d4b566ceb8 Update ori.h for AW2S RU 2022-03-03 17:21:23 +01:00
rmagueta
35324cfa12 Call nr_generate_csi_rs at UE side too 2022-03-02 18:30:02 +00:00
rmagueta
6c27a40f09 Creation of nr_csi_rs_info_t 2022-03-02 16:30:54 +00:00
rmagueta
c272bb2f7c Generalization of the nr_generate_csi_rs function to be able to call it in gNB and UE 2022-03-02 15:23:15 +00:00
rmagueta
7fdd7547be Merge remote-tracking branch 'origin/develop' into develop-CSI 2022-03-02 13:14:09 +00:00
francescomani
9e26621d4b Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-01 15:54:31 +01:00
francescomani
7bda635e03 handling 2-port CSI report at MAC gNB 2022-03-01 10:57:54 +01:00
matzakos
e5c6ee599c Merge with latest updates of develop and fixes for F1
-Problem when parsing UE_RAT_container_list at the DU through UE context setup request
-Some debug logs added to be removed once this is fixed
2022-02-28 21:51:41 +01:00
matzakos
55d59e5f2a Merge remote-tracking branch 'origin/repair-f1-5g' into F1C_extensions_develop 2022-02-28 14:44:01 +01:00
rmagueta
3eaebbca93 CSI PDU received at PHY layer in new function nr_ue_csi_rs_procedures at UE 2022-02-23 20:23:34 +00:00
rmagueta
853776ef2f Implementation of FAPI procedures for CSI at UE 2022-02-23 19:32:20 +00:00
rmagueta
05a9c0e264 Fix in nr_ue_scheduler for CSI 2022-02-23 18:12:36 +00:00
rmagueta
fdce62f799 Add cyclic_prefix in csirs_config_pdu at UE 2022-02-23 18:05:45 +00:00
rmagueta
5bae6dd6f3 Add missing fiels in fapi_nr_dl_config_csirs_pdu_rel15_t 2022-02-23 16:11:13 +00:00
rmagueta
3ae8f393f4 Add logs in nr_generate_csi_rs 2022-02-23 15:05:02 +00:00
rmagueta
4d17364142 Fix build warnings 2022-02-23 14:16:58 +00:00
rmagueta
0e0526e367 Merge remote-tracking branch 'origin/develop' into develop-CSI
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/RRC/NR/rrc_gNB_nsa.c
2022-02-23 13:51:31 +00:00
francescomani
faf38c7e56 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-23 14:20:39 +01:00
luis_pereira87
08e97aa9c8 Fix warnings after merge 2022-02-23 11:09:55 +00:00
luis_pereira87
8238c40ce9 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-02-23 10:48:49 +00:00
rmagueta
ed6aa9f505 Replace AssertFatal with a LOG in nr_get_csi_payload at UE 2022-02-22 20:09:58 +00:00
rmagueta
0ced14a56d Fix in nr_set_pdsch_semi_static 2022-02-22 20:02:15 +00:00
rmagueta
bb82697819 Fix segmentation fault at UE in nr_schedule_csi_for_im and nr_schedule_csirs_reception 2022-02-22 19:14:17 +00:00
rmagueta
cf284d76f0 Fix build after merge 2022-02-22 17:49:59 +00:00
rmagueta
6f19524e95 Merge remote-tracking branch 'origin/CSI-SA' into develop-CSI
# Conflicts:
#	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
#	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/nr_rrc_proto.h
#	openair2/RRC/NR/rrc_gNB_nsa.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-02-22 15:10:20 +00:00
rmagueta
628726caae Fix build after merge 2022-02-22 13:33:36 +00:00
rmagueta
4f58d66972 Merge remote-tracking branch 'origin/nr_csirs_rrc_harmonization' into develop-CSI
# Conflicts:
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/rrc_gNB_nsa.c
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-02-22 13:14:12 +00:00
rmagueta
2b108cdded Merge remote-tracking branch 'origin/NR_UE_CSIRS_scheduling' into develop-CSI 2022-02-22 10:09:51 +00:00
rmagueta
580f56c869 Revert "Implementation of fill_default_csi_MeasConfig"
This reverts commit 777074ff79.
2022-02-22 10:08:39 +00:00
rmagueta
777074ff79 Implementation of fill_default_csi_MeasConfig 2022-02-21 20:23:27 +00:00
rmagueta
d820051397 Update config files 2022-02-21 17:46:02 +00:00
luis_pereira87
5b1dfb8bc9 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/RRC/NR/L2_nr_interface.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.h
#	openair2/RRC/NR/rrc_gNB_reconfig.c
2022-02-21 10:20:42 +00:00
francescomani
ec539fc6a5 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-21 10:02:30 +01:00
Raymond Knopp
c02650826d SIMD alignment of stack arrays in ptrs channel estimation. 2022-02-19 17:17:09 +01:00
Raymond Knopp
9790eb1adc Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen
Conflicts:
	cmake_targets/CMakeLists.txt
	cmake_targets/build_oai
	cmake_targets/phy_simulators
	cmake_targets/phy_simulators/CMakeLists.txt
2022-02-19 13:14:53 +01:00
rmagueta
35d6c4af98 Fix ra_SearchSpace for NSA 2022-02-18 02:09:59 +00:00
rmagueta
da251e00b3 Fix firstActiveBWP and defaultBWP for NSA 2022-02-18 01:59:33 +00:00
rmagueta
cce425baf7 Fix searchSpaceId and controlResourceSetId for NSA 2022-02-18 01:43:09 +00:00
rmagueta
87c69d2fe4 To use initialBWP when there are no dedicated BWPs in config file 2022-02-18 01:22:26 +00:00
rmagueta
589cb2f43e Fix segmentation fault for do-ra 2022-02-18 00:39:34 +00:00
rmagueta
99d1588670 Fix phy-test 2022-02-18 00:28:44 +00:00
rmagueta
0789759b85 Fix dedicated BWPs configuration for NSA 2022-02-17 20:09:39 +00:00
rmagueta
d1e7dead00 Fix the removal of unused BWPs 2022-02-17 14:14:50 +00:00
rmagueta
95a0271779 Fix warning 2022-02-17 10:22:28 +00:00
luis_pereira87
bddcfc512f Implementation of functions required for the BWP switching based on RRC method 2022-02-16 19:23:53 +00:00
luis_pereira87
6b69e67f71 Fix number of search spaces 2022-02-16 16:43:49 +00:00
matzakos
fb153cc792 Merge remote-tracking branch 'origin/NR_SA_UID' into F1C_extensions_develop 2022-02-16 16:08:58 +01:00
matzakos
d3d9325081 Merge remote-tracking branch 'origin/develop' into F1C_extensions_develop 2022-02-16 16:08:34 +01:00
luis_pereira87
405edc8bd3 Fix RRC state and sub-state 2022-02-16 12:43:04 +00:00
luis_pereira87
1cd71d1742 Change LOG level 2022-02-16 11:51:20 +00:00
luis_pereira87
acdbb5bb8d Fix segmentation fault in phy-test 2022-02-16 11:28:04 +00:00
luis_pereira87
47592d53aa Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair2/RRC/NR/L2_nr_interface.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.h
2022-02-16 11:17:24 +00:00
francescomani
c4f1812cc9 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-14 18:14:19 +01:00
luis_pereira87
5d488fcbfe Merge remote-tracking branch 'origin/multiple-ues-min-prbs-bug-fix' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
2022-02-11 10:06:39 +00:00
Robert Schmidt
0a6322103c Reduce max_num_ue after successful PUCCH alloc 2022-02-10 12:44:26 +01:00
Robert Schmidt
571677b948 Make nr_find_nb_rb() take minimum RBsize 2022-02-10 12:43:54 +01:00
luis_pereira87
c1931a60e7 Bug fix in min num of PRBs to schedule to a UE when there is multiple UEs 2022-02-09 20:14:05 +00:00
luis_pereira87
06d07e3a4c Bug fix in min num of PRBs to schedule to a UE when there is multiple UEs 2022-02-09 20:09:51 +00:00
Raymond Knopp
dccbd9279a Some hardcoded values in F1AP for testing with Accelleran to be removed later 2022-02-09 11:05:23 +01:00
luis_pereira87
9c72064883 Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
#	ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
#	openair2/GNB_APP/L1_nr_paramdef.h
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf
2022-02-08 15:12:32 +00:00
francescomani
8d7df8d164 rrc configuration for pucch power control 2022-02-07 19:28:51 +01:00
luis_pereira87
7c747e5ccd Merge remote-tracking branch 'origin/NR_pdcch_improvements' into Dedicated-BWPs 2022-02-07 13:36:42 +00:00
luis_pereira87
4973424468 Merge remote-tracking branch 'origin/NR_pdcch_improvements' into Dedicated-BWPs 2022-02-07 13:09:10 +00:00
luis_pereira87
719aec8b9a Merge remote-tracking branch 'origin/NR_pdcch_improvements' into Dedicated-BWPs
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
#	openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
2022-02-04 13:28:09 +00:00
luis_pereira87
5b875ab25d Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs 2022-02-02 15:06:42 +00:00
Raymond Knopp
2e0823a7ae Change mapping between DRB id and channel id for interoperability with Accelleran CU
-Some hardcodings also added to be removed later
2022-02-01 14:03:42 +01:00
francescomani
d29b17a211 function to configure SR 2022-01-26 17:46:26 +01:00
francescomani
9408c3c0b0 function to set dl_DataToUL_ACK 2022-01-26 13:58:57 +01:00
matzakos
a19f2e3254 Merge remote-tracking branch 'origin/aw2s-n41' into F1_interop_ACC 2022-01-24 15:11:50 +01:00
luis_pereira87
729c4ef1de Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf
#	ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf
#	openair2/GNB_APP/L1_nr_paramdef.h
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf
2022-01-24 11:46:27 +00:00
francescomani
975f7e868a function to configure pucch resource set 1 (format2) 2022-01-21 19:15:50 +01:00
francescomani
dd6dac1392 function to configure pucch resource set 0 2022-01-21 16:16:02 +01:00
francescomani
299ba03b84 passing UECAP structure to RRC reconfiguration functions 2022-01-21 09:29:49 +01:00
francescomani
0d86181a58 using uid also in SA 2022-01-20 18:56:44 +01:00
Raymond Knopp
a3aae0dd9e made default nr_ulsim configuration not require root privileges (single-thread) 2022-01-20 12:35:13 +01:00
Raymond Knopp
6afebc0e41 Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen
Conflicts:
	openair1/SIMULATION/LTE_PHY/dlsim.c
	openair1/SIMULATION/LTE_PHY/ulsim.c
2022-01-20 07:51:29 +01:00
Raymond Knopp
1f9900ba61 LDPC decoder generator cleanup 2022-01-19 23:01:27 +01:00
Raymond Knopp
8d164fe2aa Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen 2022-01-19 20:06:08 +01:00
francescomani
4bdc6ac59f minor changes 2022-01-19 18:11:43 +01:00
luis_pereira87
9daebabe60 Handling SIB1 decode at UE when the searchSpaceSIB1 in BWP is NULL 2022-01-19 11:56:41 +00:00
francescomani
3377f91b62 fix free pusch_vars->rho 2022-01-19 11:48:51 +01:00
Raymond Knopp
4caafc7292 removal of lingering .o files in LDPC decoder generator directories. Merge conflict in CMakelists.txt 2022-01-19 11:25:34 +01:00
luis_pereira87
a6bf3f4cb2 Fix search space loop in ue_dci_configuration 2022-01-19 00:29:37 +00:00
luis_pereira87
8df429224b Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs 2022-01-18 17:50:20 +00:00
luis_pereira87
6f7b434c49 Update config files and fix bwp selection 2022-01-18 17:49:24 +00:00
luis_pereira87
754a39def5 Dedicated BWPs working with COTS UE in SA mode 2022-01-18 15:54:32 +00:00
luis_pereira87
e7d11fab4b Fix segmentation fault when exporting packets to wireshark with high MCS 2022-01-18 15:44:24 +00:00
luis_pereira87
10ef3751d7 Fix rbStart in pf_ul 2022-01-18 15:23:01 +00:00
francescomani
79cc85a265 Merge remote-tracking branch 'origin/clean-shutdown' into bupt-ulmimo-4 2022-01-18 15:48:38 +01:00
luis_pereira87
2a610cfef4 Handle config file without servingcellconfigdedicated 2022-01-18 13:49:22 +00:00
Robert Schmidt
18fd38fa08 Don't call trx_end_func() at nr-softmodem, is done in ru_thread() 2022-01-18 14:23:54 +01:00
Robert Schmidt
a2244ab32d Stop RU threads at end of nr-softmodem 2022-01-18 14:21:58 +01:00
luis_pereira87
b608e326ef Derive each Coreset or SearchSpace IDs from the BWPId to uniquely identify each one 2022-01-18 13:00:58 +00:00
Robert Schmidt
8c5524e455 Shutdown nr-softmodem cleanly 2022-01-18 11:53:57 +01:00
francescomani
f05c195751 bugfix for nl index 2022-01-18 09:15:05 +01:00
luis_pereira87
1bd68ef261 Fixes when handling with multiple Coresets 2022-01-18 00:12:56 +00:00
luis_pereira87
2b6c64c98c Backup improvements in servingcellconfigdedicated 2022-01-18 00:12:56 +00:00
francescomani
c1d157dc42 fixing compilation issues 2022-01-17 19:28:17 +01:00
francescomani
65698f6a8f some improvements in ul-mimo code 2022-01-17 15:15:47 +01:00
matzakos
e5899e2f74 Merge remote-tracking branch 'origin/develop' into F1C_extensions_develop 2022-01-17 13:19:45 +01:00
luis_pereira87
370b1f4d79 Fix build warning after merge with develop 2022-01-17 10:30:35 +00:00
luis_pereira87
c9b8bf475b Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts:
#	openair1/PHY/LTE_UE_TRANSPORT/pcfich_ue.c
#	openair1/PHY/TOOLS/lte_enb_scope.c
2022-01-17 10:21:22 +00:00
luis_pereira87
1a6b464331 Avoid segmentation fault in the BWP selection 2022-01-14 12:07:26 +00:00
luis_pereira87
96ae9a915f InitialContextSetupResponse with COTS UE 2022-01-13 19:51:48 +00:00
luis_pereira87
a8e7927cde Fix scope build warnings 2022-01-13 17:40:17 +00:00
luis_pereira87
46181eca7d Dedicated BWPs working for SA in RFsim 2022-01-13 17:22:37 +00:00
luis_pereira87
c1f6dbfb2f Fix Msg4 for mac subheader long, RB calculation improvement, and fix variable types to support bigger payload lengths 2022-01-13 11:16:11 +00:00
Raymond Knopp
7090db60bc Merge remote-tracking branch 'origin/physim-hotfix' into ldpc-decoder-codegen 2022-01-13 10:35:32 +01:00
Raymond Knopp
08100357f7 Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen 2022-01-13 09:51:08 +01:00
luis_pereira87
b15f1f1830 Fix number of RRCSetup encoded bytes 2022-01-12 17:51:32 +00:00
luis_pereira87
4f50fcce2a Add dedicated BWPs in fill_initial_SpCellConfig 2022-01-12 17:21:20 +00:00
luis_pereira87
6e4ff32cc5 Add Dedicated Serving Cell Configuration to config files 2022-01-12 14:40:50 +00:00
luis_pereira87
981f46039f Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2022-01-12 14:28:43 +00:00
Raymond Knopp
f44d1ccfeb reduced memory requirements of dlsim,ulsim 2022-01-12 14:21:47 +01:00
luis_pereira87
212f00fce7 Fix segmentation faults for SA 2022-01-11 19:03:35 +00:00
luis_pereira87
4f6938839a Remove hardcoded controlResourceSetId 2022-01-11 18:24:52 +00:00
luis_pereira87
2bab005799 Remove unused BWPs 2022-01-11 17:59:30 +00:00
luis_pereira87
296357fe1b BWP fixes 2022-01-11 14:27:07 +00:00
luis_pereira87
20b6ee70eb Fix build warning after merge with develop 2022-01-11 10:57:16 +00:00
luis_pereira87
68d4daf7d9 Fix variable wrongly replaced during the merge with develop 2022-01-11 10:56:34 +00:00
luis_pereira87
87c75ebccd Merge remote-tracking branch 'origin/develop' into scs_60_iisc
# Conflicts:
#	ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
#	ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
#	openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
2022-01-11 10:20:20 +00:00
francescomani
d36079c914 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-01-10 10:46:15 +01:00
francescomani
882c4b34a2 cleanup 2022-01-07 18:03:35 +01:00
Raymond Knopp
7d9b3464a8 Merge branch 'ldpc-decoder-codegen' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc-decoder-codegen
Conflicts:
	cmake_targets/CMakeLists.txt
	cmake_targets/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt
	openair1/PHY/CODING/nrLDPC_decoder.c
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h_native_memcpy
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2
	openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_avx512
2022-01-05 14:55:13 +01:00
Raymond Knopp
74ce2cf4be to trigger CI 2022-01-05 01:27:42 +01:00
rmagueta
7f6e5c6fff Fix warnings after merge with develop 2021-12-27 11:35:49 +00:00
luis_pereira87
35ebb0e045 Update min_rxtxtime in config file after merge 2021-12-27 11:26:21 +00:00
luis_pereira87
2a4c789ba9 Merge remote-tracking branch 'origin/thread_pool_size' into scs_60_iisc 2021-12-27 11:23:32 +00:00
luis_pereira87
4549104238 Merge remote-tracking branch 'origin/develop' into scs_60_iisc
# Conflicts:
#	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
#	openair1/SIMULATION/NR_PHY/dlsim.c
2021-12-27 11:13:27 +00:00
Raymond Knopp
40a9792fef build_oai flag to turn off AVX512 generation on machines that have it. Needed for caracal at EURECOM because of CUDA compiler which doesn't like the flag. Added creation of threadpool in nr_ulsim to test channel decoding parallelization on different high CPU count machines 2021-12-24 21:36:06 +01:00
Raymond Knopp
13b8abc310 Merge branch 'develop' into ldpc-decoder-codegen
Conflicts:
	cmake_targets/CMakeLists.txt
	cmake_targets/build_oai
	openair1/PHY/TOOLS/time_meas.h
2021-12-24 18:19:13 +01:00
francescomani
ff56eb3a5d Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2021-12-24 09:58:15 +01:00
Sy
cd2b80e6c2 some cleanup 2021-12-22 22:36:42 +01:00
Raymond Knopp
2d4453648f Correct how gtp-u extension header is parsed 2021-12-15 18:38:25 +01:00
francescomani
2f7e7b9823 remove some more logs 2021-12-10 10:54:10 +01:00
francescomani
dbdf38133e reducing log levels 2021-12-09 17:37:55 +01:00
francescomani
79002c1190 phy-sim test cases for UL-MIMO 2021-12-09 17:37:16 +01:00
francescomani
9fd889dc3e Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2021-12-09 09:59:07 +01:00
Fang
2aa8a438f2 add mimo doc 2021-12-07 13:47:15 +08:00
yihz
e4a7eda968 base on 2021.w48, diff_1206_2.diff, UL_NR_MIMO 4*4 2021-12-07 10:43:28 +08:00
Luis Pereira
e6ae92ea17 Revert "Temporary fix to avoid QUECTEL to reject the RRCReconfiguration in NSA mode"
This reverts commit 1302b48b92
2021-12-03 12:56:01 +00:00
luis_pereira87
aa653af57f Merge remote-tracking branch 'origin/develop' into scs_60_iisc
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
2021-12-02 11:24:07 +00:00
luis_pereira87
0f63e94861 Update Dedicated Serving Cell Configuration section in configuration file 2021-12-01 23:17:20 +00:00
luis_pereira87
1302b48b92 Temporary fix to avoid QUECTEL to reject the RRCReconfiguration in NSA mode
For now, QUECTEL rejects the RRCReconfiguration with more than 1 BWP Dedicated, need to understand why...
2021-12-01 22:28:06 +00:00
luis_pereira87
8cc8ef123b Add ServingCellConfigDedicated to RRCReconfiguration message in NSA 2021-12-01 22:02:41 +00:00
luis_pereira87
6edd0bb2ca Change LOG levels 2021-12-01 22:02:35 +00:00
luis_pereira87
ee054770c4 Fix Segmentation Fault and avoid multiple calloc for the same pointers 2021-12-01 22:02:28 +00:00
luis_pereira87
b4f8857da3 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-11-29 17:35:13 +00:00
Sy
5521e34360 my Internship project 2021-11-25 17:34:02 +01:00
Raymond Knopp
12792eece7 Modifications in the cellGroupConfig container content of F1 UE context response messages 2021-11-19 18:52:51 +01:00
matzakos
e8d92cbddd Merge remote-tracking branch 'origin/NR_F1C_F1U_extensions' into F1C_extensions_develop 2021-11-19 16:47:47 +01:00
francescomani
7f392cdb24 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-11-15 11:33:46 +01:00
Raymond Knopp
e51cd863fe Merge branch 'bler_txoptim' into F1C_extensions_develop
Conflicts:
	cmake_targets/CMakeLists.txt
	common/utils/nr/nr_common.c
	openair1/PHY/INIT/nr_parms.c
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
	openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
	openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
	openair1/SCHED_NR/fapi_nr_l1.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/NR_PHY/dlschsim.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair2/GNB_APP/gnb_config.c
	openair2/LAYER2/NR_MAC_UE/config_ue.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
	openair2/LAYER2/NR_MAC_gNB/main.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
	openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
	openair2/RRC/NR/L2_nr_interface.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
	openair2/RRC/NR/MESSAGES/asn1_msg.h
	openair2/RRC/NR/rrc_gNB_NGAP.c
	openair3/NAS/NR_UE/nr_nas_msg_sim.c
	openair3/NAS/NR_UE/nr_nas_msg_sim.h
	openair3/ocp-gtpu/gtp_itf.cpp
	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
2021-11-14 21:18:50 +01:00
matzakos
40263348f9 Merge with NR_F1C_F1U_extensions and resolve conflicts 2021-11-12 17:01:27 +01:00
matzakos
188a99ca51 Temporary dirty fix to not block SRB1 traffic once SRB2 is added
-This function will change completely after update with develop
2021-11-10 18:35:52 +01:00
matzakos
cd16d7ce03 Make the call to send DCCH SDU to RLC from RRC instead of F1AP 2021-11-10 18:35:05 +01:00
matzakos
f1455f15a3 Check whether RRC Setup is available before sending CBRA Msg4
-Required for the CU/DU split case if the RRC Setup arrives later than the first opportunity to transmit Msg4
-Next extension is to decouple RRCSetup from Msg4
2021-11-10 18:33:48 +01:00
matzakos
6a1ac14447 Include mandatory transaction ID field in F1 initial UL RRC message transfer 2021-11-10 18:31:08 +01:00
francescomani
1396004ccc Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-11-09 10:44:34 +01:00
matzakos
e2b4f80ac2 Add sNSSAI configuration in F1 Setup request message to the CU
-Required for interoperability with Accelleran CU and OAI CN
-Currently hardcoded values, to be modified so that they are parsed from the DU config file
-After this modification Accelleran CU sends gNBCU configuration update
2021-11-05 10:38:46 +01:00
francescomani
5bfd507915 some more fixes for RA at gNB 2021-11-04 09:19:29 +01:00
francescomani
ebaabde8c6 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-11-03 14:06:58 +01:00
francescomani
f1992a58f8 fixes in bwp ss and coreset configuration at ue 2021-11-01 18:14:39 +01:00
francescomani
1e6c36d877 fix segfault in SA rfsim 2021-11-01 12:03:25 +01:00
francescomani
3186d45e71 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-10-27 15:00:50 +02:00
matzakos
b103ada542 Fix decoding of SIB1 RRC container at the processing function of F1 setup request at the CU
after modifications done at the encoded SIB1 message type included in the RRC container of F1 setup request at the DU
-Some cleanup required
2021-10-26 18:30:51 +02:00
matzakos
e7f8b56b65 Include NR_SIB1_t type in F1 setup req container instead of the whole NR_BCCH_DL_SCH_Message_t message
-Wireshark is not complaining after that
-Issue at decoding F1 Setup req at the CU due to the new encoding
-Keep the previous encoding as the default for now until the CU issue is fixed
-Fix PUCCH allocation for ACK/NAK issue appearing when DU runs without OAI CU
2021-10-26 13:11:50 +02:00
matzakos
96efe9c03b Enable rrc mac config from init NR SI for the DU case 2021-10-26 12:56:32 +02:00
francescomani
0e0be91aa3 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-10-21 15:07:38 +02:00
matzakos
11cdf1610e Update F1AP UE context release command handling function for NR
-Include ITTI message to RRC to do the actual processing at RRC layer,
 as done for the other F1AP messages. Leave LTE processing as it was for now.
2021-10-20 19:00:51 +02:00
matzakos
85faedfcbe Add triggering of F1 UE Context release command
-Add also a temporary artificial trigger just to be able to test with OAI UE
-Comment out most of the part of the UE context release command handler function at the DU in order to separate properly the RRC from F1AP functionality later.
2021-10-18 18:32:57 +02:00
matzakos
40b131be13 Small corrections in F1AP UE context management messages and indentation fixes 2021-10-13 16:45:42 +02:00
matzakos
b37195ad1f Few updates on handling master cell group configuration updates coming from the DU 2021-10-13 14:36:38 +02:00
matzakos
1a40b36193 Use correct SCTP port number for F1AP according to standards 2021-10-12 19:38:19 +02:00
matzakos
39aaf63a4e Merge with branch NR_F1C_F1U_extensions 2021-10-11 17:56:28 +02:00
matzakos
e2c88f91af Trigger dedicated RRC Reconfiguration after processing F1 UE context modification response at RRC layer of the CU
-Successful user-plane traffic over F1-U upon completion of UE context modification procedures
2021-10-08 18:29:39 +02:00
matzakos
d3899a21a6 Add implementation of UE context modification response handler at F1AP layer of the CU 2021-10-08 13:37:46 +02:00
matzakos
a1b2d222dd Generation of UE context modification response at F1AP layer of the DU
-Fix some indentations
2021-10-08 10:31:53 +02:00
matzakos
f068fb4ef3 Add handling of UE context modification request at RRC layer of the DU and trigger UE context modification response
-Next step: Proper generation of UE context modification response at F1AP layer
2021-10-06 18:43:10 +02:00
matzakos
b3c0095f07 Add handler function for UE context modification request message at F1AP layer of the DU
-Fix indentation in UE context modification request message generation function at the CU
2021-10-05 17:24:16 +02:00
matzakos
36b8bb1b5b Trigger UE context modification request at the CU upon reception of PDU Session Resource setup request from the AMF
-F1 message successfully encoded at the CU (including SRB2, DRB and F1-U tunnel configuration) and received from the DU.
-Next steps: handling of UE context modification request at the DU and triggering the UE context setup response towards the CU.
2021-10-05 13:43:19 +02:00
matzakos
a84ecd1468 Merge with branch NR_F1C_F1U_extensions 2021-09-29 13:59:06 +02:00
matzakos
55476b175f Handle UE capabilities info at the DU received through UE context setup request
-Trigger UE context setup response at the DU and RRC Reconfiguration at the CU upon reception of UE context setup response.
-Pending: The DU should generate some updates on the master cell groupconfig based also on the received UE capabilities and add them in
 the UE context setup response message so that they can be included in the RRC Reconfiguration message sent from the CU. For the moment the
 corresponding function is empty.
-Next steps: trigger UE context modification procedures
2021-09-27 18:02:13 +02:00
matzakos
5e506bfab0 Trigger F1 UE context setup request from CU after reception of NR UE capabilities
-Include UE_Capability_RAT_container_list in UE context setup request so that it gets processed at the DU
-Next steps: DU should store and process the UE capabilities and generate updates in master cell group config
to be included in UE context setup response. Then upon reception of UE context setup response, the first RRC Reconfiguration
can be triggered at the CU with the updates on master cell group config.
2021-09-24 16:36:02 +02:00
francescomani
c5feda8613 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-09-10 14:59:10 +02:00
francescomani
503eba46ce fix compilation issue 2021-09-10 13:39:50 +02:00
Abhijith
28394b96af Merge branch 'scs_60_iisc' of gitlab.eurecom.fr:oai/openairinterface5g into scs_60_iisc 2021-08-30 17:27:25 +05:30
Abhijith
f03b309bc0 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-08-30 17:21:34 +05:30
Abhijith
1c60147e86 Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-08-30 16:54:57 +05:30
Abhijith
ad9e0f5db0 Fixed error in fill_default_reconfig() 2021-08-27 11:36:15 +05:30
Abhijith
208a682152 Added documentation 2021-08-20 11:50:41 +05:30
Abhijith
f2a1023d8e Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-08-16 23:01:31 +05:30
Abhijith
8b1138c89f Hardcoding of bwp_id at UE removed 2021-08-16 14:12:04 +05:30
Abhijith
274ea107ff Reverted number of BWPs error at gNB 2021-08-09 17:38:09 +05:30
Abhijith
bd0c5f6030 Reverted no. of BWPs to 4 2021-08-05 11:07:39 +05:30
Abhijith
94808d4326 Added switching delay requirements 2021-07-30 15:57:36 +05:30
Abhijith
000142c3e3 Cosmetic changes 2021-07-29 16:00:23 +05:30
Shruthi
104e532731 Review comments on SA mode addressed 2021-07-23 13:42:14 +05:30
Shruthi
6fa460dd2d Merge remote-tracking branch 'origin/develop' into scs_60_iisc 2021-07-23 13:06:12 +05:30
Abhijith
f34c9131d9 Fixed SA mode Error 2021-07-13 14:45:32 +05:30
Abhijith
1a089a0d67 Fixed errors with initialBWP and SA 2021-07-06 16:37:46 +05:30
Abhijith
115a6d0384 Merge conflicts resolved 2021-07-05 11:49:41 +05:30
Abhijith
92298de507 Merge remote-tracking branch 'origin/develop' into HEAD 2021-07-05 11:25:06 +05:30
Abhijith
1f94285040 Rebased to develop after SA merge 2021-07-02 17:03:20 +05:30
Abhijith
8507a3d281 Log level changed 2021-06-25 14:04:32 +05:30
Abhijith
076a8264c2 Merge branch 'scs_60_iisc' of https://gitlab.eurecom.fr/oai/openairinterface5g into scs_60_iisc 2021-06-25 13:39:20 +05:30
Abhijith
c623d90453 Review comments incorporated 2021-06-25 13:38:40 +05:30
Abhijith Atreya
039442c1d4 Fixed warnings and extra Log messages removed 2021-06-25 13:38:40 +05:30
Shruthi
6602bdeed8 PTRS paramaters removed 2021-06-25 13:38:40 +05:30
Abhijith Atreya
d3674a25e1 Fixed PTRS errors 2021-06-25 13:38:40 +05:30
Abhijith
ea1b995a75 Fixed error with BWP_Id 4 2021-06-25 13:38:40 +05:30
Abhijith
24acc0e8b0 scs and bwp location error fixed 2021-06-25 13:38:40 +05:30
Abhijith
4f9aaa927e Access SCD parameters from config file 2021-06-25 13:38:40 +05:30
Abhijith
af6807d30b pucch errors fixed 2021-06-25 13:38:40 +05:30
Abhijith
1fe40f312e bugfix : pdcch and BWP switch capability 2021-06-25 13:38:40 +05:30
Abhijith
bca775a594 Fixed compilation issues 2021-06-25 13:38:40 +05:30
Abhijith
91765a2c4d Initial commit for addition of dedicated BWPs 2021-06-25 13:38:40 +05:30
Abhijith
4a6f8a7dc7 Review comments incorporated 2021-06-25 13:18:52 +05:30
Abhijith Atreya
698917bf1c Fixed warnings and extra Log messages removed 2021-06-02 14:32:32 +00:00
Shruthi
e9a6efc9c9 PTRS paramaters removed 2021-06-02 12:17:08 +05:30
Abhijith Atreya
82ba9b96f4 Fixed PTRS errors 2021-06-01 11:35:03 +00:00
Abhijith
b2fedd793c Fixed error with BWP_Id 4 2021-06-01 15:50:16 +05:30
Abhijith
0628d54480 scs and bwp location error fixed 2021-05-27 20:49:55 +05:30
Abhijith
0afec1e3dd Access SCD parameters from config file 2021-05-27 18:10:46 +05:30
Abhijith
1ce9f1fccb pucch errors fixed 2021-05-26 21:20:02 +05:30
Abhijith
0ec806f5fe bugfix : pdcch and BWP switch capability 2021-05-25 20:16:31 +05:30
Abhijith
8e79241cbe Fixed compilation issues 2021-05-24 14:18:26 +05:30
Abhijith
1042db7317 Initial commit for addition of dedicated BWPs 2021-05-24 13:41:27 +05:30
Raymond Knopp
c64362f8ec Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen
Conflicts:
	cmake_targets/CMakeLists.txt
	cmake_targets/build_oai
2020-08-27 07:22:10 +02:00
Raymond Knopp
3bc433a5f8 bugfix from type in last commit 2020-08-27 07:18:49 +02:00
Sy
845a226410 optimized 5G NR LDPC decoder 2020-07-06 02:34:12 +02:00
Sy
c8a787d22c optimized 5G NR LDPC decoder 2020-07-03 14:21:00 +02:00
Sy
559e8fdcd2 degradation of performance in BLER fixed | bnProc & bnProcPc unrolled | small improvement in times 2020-07-01 18:37:52 +02:00
Sy
0f704894f4 degradation of performance in BLER corrected | bnProc & bnProcPc unrolled 2020-07-01 14:12:53 +02:00
Sy
5e5bc1a9e3 Effective management of all values ​​of Z (lifting size) and all R (coding rate) for BG1 & BG2 |
some improvement in decoding time | (bnProcPc reduces 2x)
2020-06-27 02:07:13 +02:00
Sy
c912762144 bnProcPc and bnProc unrolled | BN Processing, small improvement in times at the expense of degraded performance in BLER , reordering of generated files 2020-06-19 23:45:02 +02:00
Sy
394f0deb1b bnProcPc and bnProc unrolled | BN treatment, small improvement in times at the expense of degraded performance in BLER , reordering of generated files 2020-06-19 23:38:37 +02:00
Raymond Knopp
55e32f6e8c removed unnecessary include files 2020-06-06 10:57:33 +02:00
Raymond Knopp
0d65f76d46 removed system includes that were put in the repository 2020-06-06 09:32:41 +02:00
Sy
119be5d45b Re-implementation of memcpy--> more faster | llr2cnProcBuf, cn2bnProcbuf, bn2cnProcBuf are optimized 2020-06-04 02:52:35 +02:00
Sy
cb8760a44d full version of the optimized 5NR LDPC decoder | AVX2 && AVX512 options 2020-06-03 22:57:13 +02:00
Sy
9b11d0b593 full version of the optimized 5NR LDPC decoder 2020-06-03 22:51:05 +02:00
Sy
301317eca6 full version of the optimized 5NR LDPC decoder 2020-06-03 19:04:20 +02:00
Raymond Knopp
a6af0d99ce minor fix for AVX2/AVX512 switch 2020-06-02 13:19:35 +02:00
matzakos
956d9aa1d8 added selection between AVX2 and AVX512 2020-06-02 12:06:38 +02:00
Raymond Knopp
8663ee697e chages in AVX512 code generator. Yields small improvement compared to AVX2, BLER performance is still degraded. 2020-06-01 14:40:11 +02:00
Sy
c67550e531 Test for AVX512 2020-05-29 15:23:22 +02:00
Sy
265b5c4d1b Test for AVX512 2020-05-29 15:19:52 +02:00
Sy
4542322bb4 TEST AVX512 2020-05-29 15:13:56 +02:00
Sy
558fccbba7 TEST AVX512 2020-05-29 15:07:54 +02:00
Sy
b85b5fe47a Test for avx512 2020-05-29 14:57:15 +02:00
Sy
6d9ceaa712 Test for AVX512 2020-05-29 13:51:38 +02:00
Sy
5e5e487e4c Test for avx512 2020-05-29 11:58:55 +02:00
Raymond Knopp
3e27bed4f7 updates to CMakelist.txt for AVX512 options 2020-05-28 12:23:33 +02:00
Sy
bdd12a3396 Testing for avx512 2020-05-27 13:41:57 +02:00
Sy
bfad636369 Testing for avx512 2020-05-26 16:50:32 +02:00
Sy
00a8df6f8f generated CN processing files according to the values of Z | version for AVX2 and AVX512| BG1 & BG2 2020-05-25 14:34:07 +02:00
Sy
a1b81d9475 generated files for CN processing according to the values of Z | version for AVX2 and AVX512 2020-05-23 22:07:22 +02:00
Sy
140fa111c4 file generated for CN processing according to the values of Z | version for AVX2 and AVX512 2020-05-23 21:39:17 +02:00
Sy
ad32b6108e use of avx2 & avx512 at CN processing level 2020-05-19 11:49:10 +02:00
Sy
d3af4c4b8b use of avx2 & avx512 at CN processinf level 2020-05-19 11:46:09 +02:00
Sy
22fe32645b use of avx512 & avx2 at CN processing level 2020-05-18 17:05:50 +02:00
Sy
71a8d19b7d use of avx2 & avx512 at CN Processing level 2020-05-18 13:58:44 +02:00
Sy
3ed622afbd use of avx512 at CN processing level 2020-05-18 11:50:12 +02:00
Raymond Knopp
a7e6137408 unrolled 2 BNs case in generator 2020-05-09 09:14:59 +02:00
Raymond Knopp
581a9731d8 removed one-level of unrolling in cnProc generator 2020-05-08 23:24:04 +02:00
Sy
732b98d1ae adding >> 5 to all lut_startAddrCnGroups 2020-05-08 17:40:45 +02:00
Sy
fe27b81703 adding >> 5 to all lut_startAddrCnGroups 2020-05-08 17:38:44 +02:00
Sy
66c30b9e1d adding >> 5 to all lut_startAddrCnGroups 2020-05-08 17:15:50 +02:00
Raymond Knopp
9db8db256a LUT memory access fix for code generator 2020-05-08 15:26:52 +02:00
Sy
e785891fb1 integration of the generated file (nrLDPC_cnProc_BG1_Z384_13 with the LDPC decoder at the base 2020-05-07 16:28:01 +02:00
Raymond Knopp
f8fbd26b57 more cleanup and testing 2020-05-04 13:18:47 +02:00
Raymond Knopp
fa3a637b72 cleanup of generator, added directory/file creation for output 2020-05-04 11:25:09 +02:00
Raymond Knopp
550ab5009b fixed compilation of generator 2020-05-04 10:19:37 +02:00
Raymond Knopp
cabbb72c0f modifications to Makefile to include OPENAIR_HOME path and activate debugging symbols 2020-05-04 09:45:11 +02:00
Sy
0ee70df312 first commit 2020-05-02 23:35:18 +02:00
604 changed files with 188805 additions and 14916 deletions

31
.vscode/launch.json vendored
View File

@@ -1,31 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/cmake_targets/ran_build/build/lte-softmodem",
"args": [
"-O", "../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf",
"--noS1"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/cmake_targets",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "${workspaceFolder}/cmake_targets/sudo-gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

View File

@@ -168,7 +168,7 @@ class PhySim:
mySSH.close()
#check build status and update HTML object
lHTML = html.HTMLManagement()
lHTML = cls_oai_html.HTMLManagement()
lHTML=self.__CheckBuild_PhySim(htmlObj,constObj)
return lHTML
@@ -186,6 +186,6 @@ class PhySim:
mySSH.command(self.__workSpacePath+'ran_build/build/ldpctest ' + self.runargs + ' >> '+self.__runLogFile, '\$', 30)
mySSH.close()
#return updated HTML to main
lHTML = html.HTMLManagement()
lHTML = cls_oai_html.HTMLManagement()
lHTML=self.__CheckResults_PhySim(htmlObj,constObj,testcase_id)
return lHTML

View File

@@ -21,8 +21,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 31; //0;
servingCellConfigCommon = (
{
#spCellConfigCommon

View File

@@ -32,7 +32,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
pdcch_ConfigSIB1 = (
{

View File

@@ -21,7 +21,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 31; //0;
min_rxtxtime = 6;
pdcch_ConfigSIB1 = (

View File

@@ -32,7 +32,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
pdcch_ConfigSIB1 = (

View File

@@ -21,7 +21,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
servingCellConfigCommon = (

View File

@@ -44,7 +44,6 @@ gNBs =
local_s_portd = 2152;
remote_s_portc = 500;
remote_s_portd = 2152;
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
pdcch_ConfigSIB1 = (

View File

@@ -36,7 +36,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
pdcch_ConfigSIB1 = (

View File

@@ -37,8 +37,7 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts_N1 = 2;
pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2;
pdcch_ConfigSIB1 = (

View File

@@ -38,8 +38,7 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts_N1 = 2;
pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2;
pdcch_ConfigSIB1 = (

View File

@@ -21,7 +21,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
servingCellConfigCommon = (

View File

@@ -21,7 +21,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
servingCellConfigCommon = (

View File

@@ -19,8 +19,7 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 31; //0;
pdsch_AntennaPorts_N1 = 2;
pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2;
ul_prbblacklist = "51,52,53,54"

View File

@@ -41,7 +41,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pusch_AntennaPorts = 2;
ul_prbblacklist = "51,52,53,54"
do_SRS = 1;

View File

@@ -37,8 +37,7 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts_N1 = 2;
pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2;
ul_prbblacklist = "51,52,53,54"
do_SRS = 1;

View File

@@ -37,7 +37,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pusch_AntennaPorts = 2;
ul_prbblacklist = "51,52,53,54"
do_SRS = 1;

View File

@@ -37,7 +37,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
#pusch_TargetSNRx10 = 200;
#pucch_TargetSNRx10 = 200;
ul_prbblacklist = "51,52,53,54"

View File

@@ -37,8 +37,7 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts_N1 = 2;
pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2;
#pusch_TargetSNRx10 = 200;
#pucch_TargetSNRx10 = 200;

View File

@@ -21,7 +21,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
servingCellConfigCommon = (
@@ -219,7 +218,7 @@ RUs = (
## beamforming 4x4 matrix:
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2,mgmt_addr=192.168.18.85";
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
}
);

View File

@@ -19,7 +19,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 31; //0;
servingCellConfigCommon = (
{

View File

@@ -20,7 +20,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 31; //0;
min_rxtxtime = 6;
servingCellConfigCommon = (

View File

@@ -32,7 +32,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
min_rxtxtime = 6;
pdcch_ConfigSIB1 = (

View File

@@ -32,9 +32,6 @@ gNBs =
////////// Physical parameters:
ssb_SubcarrierOffset = 0;
pdsch_AntennaPorts = 1;
pusch_AntennaPorts = 1;
sib1_tda = 15;
min_rxtxtime = 6;

View File

@@ -16,7 +16,7 @@ Ref :
L1 Rx processing : 175.0
PUSCH inner-receiver : 100.0
PUSCH decoding : 180.0
DL & UL scheduling timing stats : 37.0
DL & UL scheduling timing : 37.0
UL Indication : 38.0
Threshold :
feprx : 1.25
@@ -28,5 +28,5 @@ Threshold :
L1 Rx processing : 1.25
PUSCH inner-receiver : 1.25
PUSCH decoding : 1.25
DL & UL scheduling timing stats : 1.25
DL & UL scheduling timing : 1.25
UL Indication : 1.25

View File

@@ -15,8 +15,9 @@ Ref :
DLSCH encoding : 230.0
L1 Rx processing : 175.0
PUSCH inner-receiver : 100.0
PUSCH decoding : 180.0
DL & UL scheduling timing stats : 37.0
#PUSCH decoding : 180.0
PUSCH decoding : 240.0
DL & UL scheduling timing : 37.0
UL Indication : 38.0
Threshold :
feprx : 1.25
@@ -28,5 +29,5 @@ Threshold :
L1 Rx processing : 1.25
PUSCH inner-receiver : 1.25
PUSCH decoding : 1.25
DL & UL scheduling timing stats : 1.25
DL & UL scheduling timing : 1.25
UL Indication : 1.25

View File

@@ -383,17 +383,19 @@ class RANManagement():
# If tracer options is on, running tshark on EPC side and capture traffic b/ EPC and eNB
localEpcIpAddr = EPC.IPAddress
localEpcUserName = EPC.UserName
localEpcPassword = EPC.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
eth_interface = 'any'
fltr = 'sctp'
logging.debug('\u001B[1m Launching tshark on interface ' + eth_interface + ' with filter "' + fltr + '"\u001B[0m')
self.epcPcapFile = 'enb_' + self.testCase_id + '_s1log.pcap'
mySSH.command('echo ' + localEpcPassword + ' | sudo -S rm -f /tmp/' + self.epcPcapFile , '\$', 5)
mySSH.command('echo $USER; nohup sudo tshark -f "host ' + lIpAddr +'" -i ' + eth_interface + ' -f "' + fltr + '" -w /tmp/' + self.epcPcapFile + ' > /tmp/tshark.log 2>&1 &', localEpcUserName, 5)
mySSH.close()
if EPC.IPAddress != "none":
localEpcIpAddr = EPC.IPAddress
localEpcUserName = EPC.UserName
localEpcPassword = EPC.Password
mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
eth_interface = 'any'
fltr = 'sctp'
logging.debug('\u001B[1m Launching tshark on interface ' + eth_interface + ' with filter "' + fltr + '"\u001B[0m')
self.epcPcapFile = 'enb_' + self.testCase_id + '_s1log.pcap'
mySSH.command('echo ' + localEpcPassword + ' | sudo -S rm -f /tmp/' + self.epcPcapFile , '\$', 5)
mySSH.command('echo $USER; nohup sudo tshark -f "host ' + lIpAddr +'" -i ' + eth_interface + ' -f "' + fltr + '" -w /tmp/' + self.epcPcapFile + ' > /tmp/tshark.log 2>&1 &', localEpcUserName, 5)
mySSH.close()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath, '\$', 5)
# Initialize_eNB_args usually start with -O and followed by the location in repository

View File

@@ -529,14 +529,14 @@ class Dashboard:
mr_notes = editable_mr.notes.list(all=True)
body = '[Consolidated Test Results](https://oaitestdashboard.s3.eu-west-1.amazonaws.com/MR'+mr+'/index.html)\\\n'
body += 'Tested CommitID: ' + commit + '\\\n'
body += 'Tested CommitID: ' + commit
for i in range(0,n_tests):
jobname = args[4*i]
buildurl = args[4*i+1]
buildid = args[4*i+2]
status = args[4*i+3]
body += jobname+': **'+status+'** ([' + buildid + '](' + buildurl + '))\\\n'
body += '\\\n' + jobname + ': **'+status+'** ([' + buildid + '](' + buildurl + '))'
#create new note
mr_note = editable_mr.notes.create({

View File

@@ -25,7 +25,7 @@ gnb :
L1 Rx processing:
PUSCH inner-receiver:
PUSCH decoding:
DL & UL scheduling timing stats:
DL & UL scheduling timing:
UL Indication:
graph :
page1:
@@ -45,5 +45,5 @@ gnb :
page4:
rt.PUSCH inner-receiver:
rt.PUSCH decoding:
rt.DL & UL scheduling timing stats:
rt.DL & UL scheduling timing:
rt.UL Indication:

View File

@@ -32,7 +32,7 @@
<testCase id="000001">
<class>Build_eNB</class>
<desc>Build gNB</desc>
<Build_eNB_args>-w USRP -c --gNB --ninja</Build_eNB_args>
<Build_eNB_args>-w USRP -c --gNB --ninja --noavx512</Build_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<forced_workspace_cleanup>True</forced_workspace_cleanup>

View File

@@ -50,7 +50,7 @@
<testCase id="000002">
<class>Build_eNB</class>
<desc>Build gNB</desc>
<Build_eNB_args>-w USRP -c --gNB --ninja</Build_eNB_args>
<Build_eNB_args>-w USRP -c --gNB --ninja --noavx512</Build_eNB_args>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<backgroundBuild>True</backgroundBuild>

View File

@@ -24,7 +24,7 @@
<htmlTabRef>gNB-PHY-Test</htmlTabRef>
<htmlTabName>Run-gNB-PHY-Test</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>3</repeatCount>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
090101 000001 090109
</TestCaseRequestedList>
@@ -33,7 +33,7 @@
<testCase id="090101">
<class>Initialize_eNB</class>
<desc>Initialize gNB USRP</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf --phy-test -q -U 787200 -T 106 -t 28 -D 130175 -m 28 -M 106 --log_config.global_log_options level,nocolor,time</Initialize_eNB_args>
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf --phy-test -q -U 787200 -T 106 -t 28 -D 130175 -m 28 -M 106 --usrp-tx-thread-config 1 --log_config.global_log_options level,nocolor,time</Initialize_eNB_args>
<air_interface>NR</air_interface>
<USRP_IPAddress>192.168.20.2</USRP_IPAddress>
</testCase>

View File

@@ -34,7 +34,7 @@
<mode>TesteNB</mode>
<class>Build_eNB</class>
<desc>Build gNB (USRP)</desc>
<Build_eNB_args>--gNB -w USRP --ninja --cmake-opt -DBoost_INCLUDE_DIR=/usr/include/boost169</Build_eNB_args>
<Build_eNB_args>--gNB -w USRP --ninja --cmake-opt -DBoost_INCLUDE_DIR=/usr/include/boost169 --noavx512</Build_eNB_args>
<forced_workspace_cleanup>True</forced_workspace_cleanup>
</testCase>

View File

@@ -32,7 +32,7 @@
<testCase id="000001">
<class>Build_PhySim</class>
<desc>Build for physical simulator</desc>
<physim_build_args>--phy_simulators --ninja</physim_build_args>
<physim_build_args>--phy_simulators --ninja --noavx512</physim_build_args>
<forced_workspace_cleanup>FALSE</forced_workspace_cleanup>
</testCase>

View File

@@ -88,7 +88,7 @@
<id>nrmodule2_quectel</id>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>40</ping_rttavg_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="050001">
<class>Ping</class>
@@ -96,7 +96,7 @@
<id>nrmodule2_quectel</id>
<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>40</ping_rttavg_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>

View File

@@ -88,7 +88,7 @@
<id>nrmodule2_quectel</id>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>40</ping_rttavg_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="050003">
<class>Ping</class>
@@ -96,7 +96,7 @@
<id>nrmodule2_quectel</id>
<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>40</ping_rttavg_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>

View File

@@ -203,17 +203,23 @@ if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
else (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
if(EXISTS "/proc/cpuinfo")
file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1)
if (CPUINFO MATCHES "avx2")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx2")
message("NOAVX512 is ${NOAVX512}")
if (CPUINFO MATCHES "avx512bw" AND "${NOAVX512}" STREQUAL "False")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512 " )
set(COMPILATION_AVX2 "True")
else()
set(COMPILATION_AVX2 "False")
endif()
if (CPUINFO MATCHES "sse4_1")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -msse4.1 -mpclmul")
endif()
if (CPUINFO MATCHES "ssse3")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mssse3")
if (CPUINFO MATCHES "avx2")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx2")
set(COMPILATION_AVX2 "True")
else()
set(COMPILATION_AVX2 "False")
endif()
if (CPUINFO MATCHES "sse4_1")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -msse4.1 -mpclmul")
endif()
if (CPUINFO MATCHES "ssse3")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mssse3")
endif()
endif()
else()
Message("/proc/cpuinfo does not exit. We will use manual CPU flags")
@@ -224,11 +230,11 @@ set(C_FLAGS_PROCESSOR " ${C_FLAGS_PROCESSOR} ${CFLAGS_PROCESSOR_USER}")
Message("C_FLAGS_PROCESSOR is ${C_FLAGS_PROCESSOR}")
if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86")
if ( (NOT( C_FLAGS_PROCESSOR MATCHES "ssse3")) OR (NOT( C_FLAGS_PROCESSOR MATCHES "msse4.1")) )
Message(FATAL_ERROR "For x86 Architecture, you must have following flags: -mssse3 -msse4.1. The current detected flags are: ${C_FLAGS_PROCESSOR}. You can pass the flags manually in build script, for example: ./build_oai --cflags_processor \"-mssse3 -msse4.1 -mavx2\" ")
endif()
endif()
#if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86")
# if ( (NOT( C_FLAGS_PROCESSOR MATCHES "ssse3")) OR (NOT( C_FLAGS_PROCESSOR MATCHES "msse4.1")) )
# Message(FATAL_ERROR "For x86 Architecture, you must have following flags: -mssse3 -msse4.1. The current detected flags are: ${C_FLAGS_PROCESSOR}. You can pass the flags manually in build script, for example: ./build_oai --cflags_processor \"-mssse3 -msse4.1 -mavx2\" ")
# endif()
#endif()
#
# add autotools definitions that were maybe used!
@@ -247,6 +253,22 @@ add_boolean_option(SANITIZE_ADDRESS False "enable the address sanitizer (ASan)")
if (SANITIZE_ADDRESS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fno-common")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fno-common")
# There seems to be some incompatibility with pthread_create and the RT scheduler, which
# results in pthread_create hanging.
#
# When we switch from Ubuntu 16.04 to 18.04, we found that running with the address sanitizer,
# the pthread_create function calls were not working. The inital thought was that we were
# trying to create a thread that was not-blocking and would eventually crash the machine during
# the run. After more debugging, we found that we would never even start the thread. We narrowed
# down the first two instances of pthread_create in the gNB and NR UE to be sctp_eNB_task and
# one_thread, respectively. We found that adding sleeps, and various other pauses to the threads
# had not effect. From there, we found that if we add an abort(); prior to the thread loop, we
# do not execute that. This indicated to us that the problem is not likely to be a non-blocking
# thread, but perhaps and issue with pthread_create itself. From there we begain to research the
# issue on the web. See: https://github.com/google/sanitizers/issues/1125
#
# Google searching indicates this appears to be a problem since at least 2018. This could be something
# wrong in the pthread library, or something subtly wrong in this CMakeLists.txt. Use Ubuntu 20.04 instead.
endif ()
add_definitions("-DASN_DISABLE_OER_SUPPORT")
@@ -1384,8 +1406,11 @@ set(PHY_NR_CODINGIF
)
add_library(ldpc_orig MODULE ${PHY_LDPC_ORIG_SRC} )
target_link_libraries(ldpc_orig PRIVATE ldpc_gen_HEADERS)
add_library(ldpc_optim MODULE ${PHY_LDPC_OPTIM_SRC} )
target_link_libraries(ldpc_optim PRIVATE ldpc_gen_HEADERS)
add_library(ldpc_optim8seg MODULE ${PHY_LDPC_OPTIM8SEG_SRC} )
target_link_libraries(ldpc_optim8seg PRIVATE ldpc_gen_HEADERS)
add_library(ldpc_cl MODULE ${PHY_LDPC_CL_SRC} )
target_link_libraries(ldpc_cl OpenCL)
add_dependencies(ldpc_cl nrLDPC_decoder_kernels_CL)
@@ -1397,6 +1422,7 @@ if (CUDA_FOUND)
endif (CUDA_FOUND)
add_library(ldpc MODULE ${PHY_LDPC_OPTIM8SEGMULTI_SRC} )
target_link_libraries(ldpc PRIVATE ldpc_gen_HEADERS)
add_library(coding MODULE ${PHY_TURBOSRC} )
@@ -1542,9 +1568,10 @@ set(PHY_SRC_UE
set(PHY_NR_SRC_COMMON
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_prach_common.c
${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_csi_rs.c
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_scrambling.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/scrambling_luts.c
${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
)
set(PHY_NR_SRC
@@ -1568,7 +1595,6 @@ set(PHY_SRC_UE
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/ul_ref_seq_nr.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/nr_dmrs_rx.c
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_csi_rs.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/nr_gold.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/nr_gen_mod_table.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/dmrs_nr.c
@@ -1616,6 +1642,7 @@ set(PHY_SRC_UE
${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/dci_nr.c
${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/dci_tools_nr.c
${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/pucch_nr.c
${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/csi_rx.c
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_uci_tools_common.c
${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
${OPENAIR1_DIR}/PHY/NR_REFSIG/ul_ref_seq_nr.c
@@ -1925,6 +1952,7 @@ set (MAC_SRC_UE
set (MAC_NR_SRC_UE
${NR_UE_PHY_INTERFACE_DIR}/NR_IF_Module.c
${NR_UE_PHY_INTERFACE_DIR}/NR_Packet_Drop.c
${NR_UE_MAC_DIR}/config_ue.c
${NR_UE_MAC_DIR}/mac_vars.c
${NR_UE_MAC_DIR}/main_ue_nr.c
@@ -2842,6 +2870,7 @@ target_link_libraries(ldpctest
add_executable(nr_dlschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlschsim.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
)
@@ -2865,6 +2894,7 @@ target_link_libraries(nr_pbchsim
add_executable(nr_pucchsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/pucchsim.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
)
@@ -2909,6 +2939,7 @@ target_link_libraries(nr_prachsim
add_executable(nr_ulschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulschsim.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${PHY_INTERFACE_DIR}/queue_t.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
@@ -3150,3 +3181,5 @@ ADD_CUSTOM_TARGET(oarf
)
include (${OPENAIR_DIR}/common/utils/telnetsrv/telnetsrv_CMakeLists.txt)
include(${OPENAIR1_DIR}/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt)
include (${OPENAIR_DIR}/common/utils/websrv/websrv_CMakeLists.txt)

View File

@@ -1062,7 +1062,8 @@
(Test3: PBCH-only, 217 PRB),
(Test4: PBCH and synchronization, 217 RPB),
(Test5: PBCH-only, 273 PRB),
(Test6: PBCH and synchronization, 273 PRB)</desc>
(Test6: PBCH and synchronization, 273 PRB),
(Test7: PBCH and synchronization, 106PBR, SSB SC OFFSET 6)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1074,8 +1075,9 @@
-s-11 -S-8 -n10 -R217
-s-11 -S-8 -n10 -o8000 -I -R217
-s-11 -S-8 -n10 -R273
-s-11 -S-8 -n10 -o8000 -I -R273</main_exec_args>
<tags>nr_pbchsim.test1 nr_pbchsim.test2 nr_pbchsim.test3 nr_pbchsim.test4 nr_pbchsim.test5 nr_pbchsim.test6</tags>
-s-11 -S-8 -n10 -o8000 -I -R273
-s-11 -S-8 -n10 -R106 -O6</main_exec_args>
<tags>nr_pbchsim.test1 nr_pbchsim.test2 nr_pbchsim.test3 nr_pbchsim.test4 nr_pbchsim.test5 nr_pbchsim.test6 nr_pbchsim.test7</tags>
<search_expr_true>PBCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1104,7 +1106,9 @@
(Test19: Mapping type A, 3 DMRS Symbols),
(Test20: Mapping type B, 4 DMRS Symbols),
(Test21: 4x4 MIMO, 1 Layer),
(Test22: 4x4 MIMO, 2 Layers)</desc>
(Test22: 4x4 MIMO, 2 Layers),
(Test23: 25 PRBs, 15 kHz SCS)
(Test24: MCS 0, low SNR performance)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1132,8 +1136,10 @@
-n100 -s2 -U 2 0 2
-n100 -s2 -U 2 1 3
-n10 -s20 -U 3 0 0 2 -gR -x1 -y4 -z4
-n10 -s20 -U 3 0 0 2 -gR -x2 -y4 -z4</main_exec_args>
<tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21 nr_dlsim.test22</tags>
-n10 -s20 -U 3 0 0 2 -gR -x2 -y4 -z4
-n100 -m0 -e0 -R25 -b25 -i 2 1 0
-n100 -e0 -t95 -S-1.0 -i 2 1 0</main_exec_args>
<tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21 nr_dlsim.test22 nr_dlsim.test23 nr_dlsim.test24</tags>
<search_expr_true>PDSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1184,9 +1190,10 @@
<testCase id="015108">
<class>execution</class>
<desc>nr_ulschsim Test cases. (Test1: 106 PRB),
(Test2: 217 PRB),
(Test3: 273 PRB)</desc>
<desc>nr_ulschsim Test cases. (Test1: 106 PRBs),
(Test2: 217 PRBs),
(Test3: 273 PRBs)
(Test4: 106 PRBs 4-layer MIMO)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1195,8 +1202,9 @@
<main_exec> $OPENAIR_DIR/targets/bin/nr_ulschsim.Rel15</main_exec>
<main_exec_args>-R 106 -m9 -s13 -n100
-R 217 -m15 -s15 -n100
-R 273 -m19 -s20 -n100</main_exec_args>
<tags>nr_ulschsim.test1 nr_ulschsim.test2 nr_ulschsim.test3</tags>
-R 273 -m19 -s20 -n100
-R 106 -m9 -s13 -n100 -y4 -z4 -W4</main_exec_args>
<tags>nr_ulschsim.test1 nr_ulschsim.test2 nr_ulschsim.test3 nr_ulschsim.test4</tags>
<search_expr_true>PUSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1304,7 +1312,14 @@
(Test12: SC-FDMA, 216 PRBs),
(Test13: SC-FDMA, 273 PRBs),
(Test14: SC-FDMA, 3 DMRS),
(Test15: MCS 16 50 PRBs 2 RX_Antenna)</desc>
(Test15: MCS 19 50 PRBs 2 RX_Antenna),
(Test16: MCS 9 106 PRBs MIMO 2 layers),
(Test17: MCS 9 106 PRBs MIMO 4 layers),
(Test18: 25 PRBs, 15 kHz SCS),
(Test19: 3GPP G-FR1-A4-13 2 RX Antennas Requirements Test),
(Test20: 3GPP G-FR1-A4-13 4 RX Antennas Requirements Test),
(Test21: 3GPP G-FR1-A4-13 8 RX Antennas Requirements Test),
(Test22: MCS 0, low SNR performance)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1316,18 +1331,24 @@
-n100 -m28 -s20
-n100 -m9 -R217 -r217 -s5
-n100 -m9 -R273 -r273 -s5
-n100 -s5 -U 2 0 1
-n100 -s5 -T 2 1 2 -U 2 0 2
-n100 -s5 -T 2 2 2 -U 2 1 2
-n100 -s5 -a4 -b8 -T 2 1 2 -U 2 1 3
-n100 -s5 -U 4 0 1 1 1
-n100 -s5 -T 2 1 2 -U 4 0 2 1 1
-n100 -s5 -T 2 2 2 -U 4 1 2 1 1
-n100 -s5 -a4 -b8 -T 2 1 2 -U 4 1 3 1 1
-n100 -s5 -Z
-n100 -s5 -Z -r75
-n50 -s5 -Z -r216 -R217
-n50 -s5 -Z -r270 -R273
-n100 -s5 -Z -U 2 0 2
-n100 -m16 -s10 -z2</main_exec_args>
<tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8 nr_ulsim.test9 nr_ulsim.test10 nr_ulsim.test11 nr_ulsim.test12 nr_ulsim.test13 nr_ulsim.test14 nr_ulsim.test15</tags>
-n100 -s5 -Z -U 4 0 2 1 2
-n100 -m19 -s10 -S15 -z2
-n100 -m9 -r106 -s10 -W2 -y2 -z2
-n100 -m9 -r106 -s20 -W4 -y4 -z4
-n100 -u0 -m0 -R25 -r25 -i 2 1 0
-m16 -r106 -s8.8 -S9.4 -z2 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
-m16 -r106 -s5.4 -S6 -z4 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
-m16 -r106 -s3.4 -S3.8 -z8 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
-n100 -m0 -S -0.6 -i 2 1 0</main_exec_args>
<tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8 nr_ulsim.test9 nr_ulsim.test10 nr_ulsim.test11 nr_ulsim.test12 nr_ulsim.test13 nr_ulsim.test14 nr_ulsim.test15 nr_ulsim.test16 nr_ulsim.test17 nr_ulsim.test18 nr_ulsim.test19 nr_ulsim.test20 nr_ulsim.test21 nr_ulsim.test22</tags>
<search_expr_true>PUSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -1338,10 +1359,11 @@
<desc>nr_prachsim Test cases. (Test1: 30kHz SCS, 106 PRBs, Prach format A2),
(Test2: 30kHz SCS, 217 PRBs, Prach format A2),
(Test3: 30kHz SCS, 273 PRBs, Prach format A2),
(Test4: 30kHz SCS, 106 PRBs, Prach format 0),
(Test4: 30kHz SCS, 106 PRBs, Prach format 0),
(Test5: 120kHz SCS, 32 PRBs, Prach format A2),
(Test6: 120kHz SCS, 66 PRBs, Prach format A2),
(Test7: 120kHz SCS, 66 PRBs, High Speed Enabled)</desc>
(Test7: 120kHz SCS, 66 PRBs, High Speed Enabled),
(Test8: 15kHz SCS, 25 PRBs)</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1351,11 +1373,12 @@
<main_exec_args>-a -s -30 -n 100 -p 63 -R 106
-a -s -30 -n 100 -p 63 -R 217
-a -s -30 -n 100 -p 63 -R 273
-a -s -30 -n 100 -p 63 -R 106 -c 4
-a -s -30 -n 100 -p 32 -R 32 -m 3 -c52
-a -s -30 -n 100 -p 32 -R 66 -m 3 -c52
-a -s -30 -n 100 -R 66 -m 3 -c52 -H</main_exec_args>
<tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3 nr_prachsim.test4 nr_prachsim.test5 nr_prachsim.test6 nr_prachsim.test7</tags>
-a -s -30 -n 100 -p 63 -R 106 -c 4
-a -s -30 -n 100 -p 32 -R 32 -m 3 -c52
-a -s -30 -n 100 -p 32 -R 66 -m 3 -c52
-a -s -30 -n 100 -R 66 -m 3 -c52 -H
-a -s -30 -n 100 -p 99 -R 25 -m 0</main_exec_args>
<tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3 nr_prachsim.test4 nr_prachsim.test5 nr_prachsim.test6 nr_prachsim.test7 nr_prachsim.test8</tags>
<search_expr_true>PRACH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>

View File

@@ -55,9 +55,10 @@ BUILD_COVERITY_SCAN=0
DISABLE_HARDWARE_DEPENDENCY="False"
CMAKE_BUILD_TYPE="RelWithDebInfo"
CMAKE_CMD="$CMAKE"
NOAVX512="False"
BUILD_ECLIPSE=0
NR="False"
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope"
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope websrv"
RU=0
CMAKE_C_FLAGS=()
CMAKE_CXX_FLAGS=()
@@ -164,6 +165,8 @@ Options:
Build optional shared library, <libraries> can be one or several of $OPTIONAL_LIBRARIES or \"all\"
--usrp-recplay
Build for I/Q record-playback modes
--noavx512
Build without AVX512 if it is present on CPU
-k | --skip-shared-libraries
Skip build for shared libraries to reduce compilation time when building frequently for debugging purposes
--ninja
@@ -436,6 +439,10 @@ function main() {
fi
fi
shift 2;;
--noavx512)
NOAVX512="True"
echo_info "Disabling AVX512"
shift 1;;
-k | --skip-shared-libraries)
SKIP_SHARED_LIB_FLAG="True"
echo_info "Skipping build of shared libraries, rfsimulator and transport protocol libraries"
@@ -445,6 +452,7 @@ function main() {
MAKE_CMD=ninja
shift;;
--sanitize-address | -fsanitize=address)
grep -sq "Ubuntu 18.04" /etc/os-release && echo_error "Bug in OS with this option, see CMakeLists.txt"
CMAKE_CMD="$CMAKE_CMD -DSANITIZE_ADDRESS=True"
shift;;
--ittiSIM)
@@ -624,6 +632,7 @@ function main() {
cd $DIR/$BUILD_DIR/build
if [[ ${#CMAKE_C_FLAGS[@]} > 0 ]]; then CMAKE_CMD="$CMAKE_CMD -DCMAKE_C_FLAGS=\"${CMAKE_C_FLAGS[*]}\""; fi
if [[ ${#CMAKE_CXX_FLAGS[@]} > 0 ]]; then CMAKE_CMD="$CMAKE_CMD -DCMAKE_CXX_FLAGS=\"${CMAKE_CXX_FLAGS[*]}\""; fi
CMAKE_CMD="$CMAKE_CMD -DNOAVX512=\"${NOAVX512[*]}\""
echo_info "running $CMAKE_CMD"
eval $CMAKE_CMD ../..
@@ -713,11 +722,11 @@ function main() {
# simlist="ldpctest"
for f in $simlist ; do
compilations \
ran_build $f \
$BUILD_DIR $f \
$f $dbin/$f.$REL
done
compilations \
ran_build coding \
$BUILD_DIR coding \
libcoding.so $dbin/libcoding.so
fi
@@ -729,7 +738,7 @@ function main() {
simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
for f in $simlist ; do
compilations \
ran_build test_$f \
$BUILD_DIR test_$f \
test_$f $dbin/test_$f.$REL
done
fi

View File

@@ -109,6 +109,7 @@ check_supported_distribution() {
"ubuntu18.04") return 0 ;;
"ubuntu16.04") return 0 ;;
"fedora35") return 0 ;;
"fedora36") return 0 ;;
"rhel7") return 0 ;;
"rhel7.6") return 0 ;;
"rhel7.7") return 0 ;;
@@ -196,8 +197,8 @@ check_warnings() {
#argument:
# $1: log file
check_errors() {
#we look for 'warning:' in the compilation log file
error_count=`grep "error:" "$1" | wc -l`
#we look for 'error:' in the compilation log file
error_count=`grep -c "error:" "$1"`
if [ $error_count -gt 0 ]; then
echo_error "ERROR: $error_count error. See $1"
fi
@@ -623,7 +624,6 @@ check_install_additional_tools (){
android-tools-adb \
wvdial \
sshpass \
nscd \
bc \
ntp"
elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
@@ -648,7 +648,6 @@ check_install_additional_tools (){
wvdial \
numpy \
sshpass \
nscd \
python2-paramiko \
python-pyroute2 \
python-netifaces \
@@ -676,7 +675,6 @@ check_install_additional_tools (){
wvdial \
python-numpy \
sshpass \
nscd \
python-paramiko \
python-pyroute2 \
python-netifaces \

View File

@@ -88,6 +88,8 @@ int processoption(paramdef_t *cfgoptions, char *value) {
config_check_valptr(cfgoptions, cfgoptions->strptr, strlen(tmpval)+1);
sprintf(*(cfgoptions->strptr), "%s",tmpval);
} else {
AssertFatal( ( strlen(*(cfgoptions->strptr)) < cfgoptions->numelt), "[CONFIG] Error: %s too long, %s value cannot exceed %i bytes\n",
cfgoptions->optname,tmpval, cfgoptions->numelt) ;
sprintf( (char *)(cfgoptions->strptr), "%s",tmpval);
}

View File

@@ -88,13 +88,32 @@ int load_config_sharedlib(configmodule_interface_t *cfgptr) {
st = -1;
}
if ( cfgptr->rtflags & CONFIG_SAVERUNCFG ) {
sprintf (fname,"config_%s_set",cfgptr->cfgmode);
cfgptr->set = dlsym(lib_handle,fname);
if (cfgptr->set == NULL ) {
printf("[CONFIG] %s %d no function %s for config mode %s\n",
__FILE__, __LINE__,fname, cfgptr->cfgmode);
st = -1;
}
sprintf (fname,"config_%s_write_parsedcfg",cfgptr->cfgmode);
cfgptr->write_parsedcfg = dlsym(lib_handle,fname);
if (cfgptr->write_parsedcfg == NULL ) {
printf("[CONFIG] %s %d no function %s for config mode %s\n",
__FILE__, __LINE__,fname, cfgptr->cfgmode);
}
}
sprintf (fname,"config_%s_end",cfgptr->cfgmode);
cfgptr->end = dlsym(lib_handle,fname);
if (cfgptr->getlist == NULL ) {
if (cfgptr->end == NULL ) {
printf("[CONFIG] %s %d no function %s for config mode %s\n",
__FILE__, __LINE__,fname, cfgptr->cfgmode);
}
}
return st;
@@ -186,6 +205,7 @@ configmodule_interface_t *load_configmodule(int argc,
uint32_t initflags)
{
char *cfgparam=NULL;
char *modeparams=NULL;
char *cfgmode=NULL;
char *strtokctx=NULL;
@@ -193,7 +213,8 @@ configmodule_interface_t *load_configmodule(int argc,
uint32_t tmpflags=0;
int i;
int OoptIdx=-1;
int OWoptIdx=-1;
printf("CMDLINE: ");
for (int i=0; i<argc; i++)
printf("\"%s\" ", argv[i]);
@@ -208,7 +229,11 @@ configmodule_interface_t *load_configmodule(int argc,
cfgparam = argv[i+1];
OoptIdx=i;
}
char *OWopt = strstr(argv[i],"OW");
if ( OWopt == argv[i]+2) {
OWoptIdx=i;
}
if ( strstr(argv[i], "help_config") != NULL ) {
config_printhelp(Config_Params,CONFIG_PARAMLENGTH(Config_Params),CONFIG_SECTIONNAME);
exit(0);
@@ -258,6 +283,11 @@ configmodule_interface_t *load_configmodule(int argc,
/* argv[0] is the exec name, always Ok */
cfgptr->argv_info[0] |= CONFIG_CMDLINEOPT_PROCESSED;
/* When reuested _(_--OW or rtflag is 5), a file with config parameters, as defined after all processing, will be created */
if (OWoptIdx >= 0) {
cfgptr->argv_info[OWoptIdx] |= CONFIG_CMDLINEOPT_PROCESSED;
cfgptr->rtflags |= CONFIG_SAVERUNCFG ;
}
/* when OoptIdx is >0, -O option has been detected at position OoptIdx
* we must memorize arv[OoptIdx is Ok */
if (OoptIdx >= 0) {
@@ -294,14 +324,18 @@ configmodule_interface_t *load_configmodule(int argc,
printf("%s ",cfgptr->cfgP[i]);
}
printf(", debug flags: 0x%08x\n",cfgptr->rtflags);
if (cfgptr->rtflags & CONFIG_PRINTPARAMS) {
cfgptr->status = malloc(sizeof(configmodule_status_t));
}
if (strstr(cfgparam,CONFIG_CMDLINEONLY) == NULL) {
i=load_config_sharedlib(cfgptr);
if (i == 0) {
printf("[CONFIG] config module %s loaded\n",cfgmode);
Config_Params[CONFIGPARAM_DEBUGFLAGS_IDX].uptr=&(cfgptr->rtflags);
int idx = config_paramidx_fromname(Config_Params, CONFIG_PARAMLENGTH(Config_Params), CONFIGP_DEBUGFLAGS);
Config_Params[idx].uptr=&(cfgptr->rtflags);
idx = config_paramidx_fromname(Config_Params, CONFIG_PARAMLENGTH(Config_Params), CONFIGP_TMPDIR);
Config_Params[idx].strptr=&(cfgptr->tmpdir);
config_get(Config_Params,CONFIG_PARAMLENGTH(Config_Params), CONFIG_SECTIONNAME );
} else {
fprintf(stderr,"[CONFIG] %s %d config module \"%s\" couldn't be loaded\n", __FILE__, __LINE__,cfgmode);
@@ -313,7 +347,10 @@ configmodule_interface_t *load_configmodule(int argc,
cfgptr->getlist = config_cmdlineonly_getlist;
cfgptr->end = (configmodule_endfunc_t)nooptfunc;
}
printf("[CONFIG] debug flags: 0x%08x\n",cfgptr->rtflags);
if (modeparams != NULL) free(modeparams);
if (cfgmode != NULL) free(cfgmode);
@@ -326,10 +363,28 @@ configmodule_interface_t *load_configmodule(int argc,
return cfgptr;
}
/* Possibly write config file, with parameters which have been read and after command line parsing */
void write_parsedcfg(void) {
if ( cfgptr->status && (cfgptr->rtflags & CONFIG_SAVERUNCFG)) {
printf_params("[CONFIG] Runtime params creation status: %i null values, %i errors, %i empty list or array, %i successfull \n",
cfgptr->status->num_err_nullvalue,
cfgptr->status->num_err_write,
cfgptr->status->emptyla,
cfgptr->status->num_write);
}
if (cfgptr != NULL) {
if (cfgptr->write_parsedcfg != NULL) {
printf ("[CONFIG] calling config module write_parsedcfg function...\n");
cfgptr->write_parsedcfg();
}
}
}
/* free memory allocated when reading parameters */
/* config module could be initialized again after this call */
void end_configmodule(void) {
write_parsedcfg();
if (cfgptr != NULL) {
if (cfgptr->end != NULL) {
printf ("[CONFIG] calling config module end function...\n");
@@ -355,7 +410,10 @@ void end_configmodule(void) {
void free_configmodule(void) {
if (cfgptr != NULL) {
end_configmodule();
if( cfgptr->status != NULL) {
free(cfgptr->status->debug_cfgname);
free(cfgptr->status);
}
if( cfgptr->cfgmode != NULL) free(cfgptr->cfgmode);
printf ("[CONFIG] free %i config parameter pointers\n",cfgptr->num_cfgP);

View File

@@ -54,6 +54,7 @@
#define CONFIG_DEBUGPTR (1<<1) // print memory allocation/free debug messages
#define CONFIG_DEBUGCMDLINE (1<<2) // print command line processing messages
#define CONFIG_NOABORTONCHKF (1<<4) // disable abort execution when parameter checking function fails
#define CONFIG_SAVERUNCFG (1<<5) // create config file with running values, as after cfg file + command line processing
#define CONFIG_NOEXITONHELP (1<<19) // do not exit after printing help
#define CONFIG_HELP (1<<20) // print help message
#define CONFIG_ABORT (1<<21) // config failed,abort execution
@@ -61,7 +62,20 @@
typedef int(*configmodule_initfunc_t)(char *cfgP[],int numP);
typedef int(*configmodule_getfunc_t)(paramdef_t *,int numparams, char *prefix);
typedef int(*configmodule_getlistfunc_t)(paramlist_def_t *, paramdef_t *,int numparams, char *prefix);
typedef int(*configmodule_setfunc_t)(paramdef_t *cfgoptions, int numoptions, char *prefix );
typedef void(*configmodule_endfunc_t)(void);
typedef struct configmodule_status {
int num_paramgroups;
char ** paramgroups_names;
int num_err_nullvalue;
int emptyla;
int num_err_read;
int num_err_write;
int num_read;
int num_write;
char *debug_cfgname;
}configmodule_status_t;
typedef struct configmodule_interface {
int argc;
char **argv;
@@ -72,11 +86,15 @@ typedef struct configmodule_interface {
configmodule_initfunc_t init;
configmodule_getfunc_t get;
configmodule_getlistfunc_t getlist;
configmodule_setfunc_t set;
configmodule_endfunc_t end;
configmodule_endfunc_t write_parsedcfg;
uint32_t numptrs;
uint32_t rtflags;
char *ptrs[CONFIG_MAX_ALLOCATEDPTRS];
bool ptrsAllocated[CONFIG_MAX_ALLOCATEDPTRS];
char *tmpdir;
configmodule_status_t *status; // allocated in debug mode only
} configmodule_interface_t;
#ifdef CONFIG_LOADCONFIG_MAIN
@@ -89,16 +107,19 @@ static char config_helpstr [] = "\n lte-softmodem -O [config mode]<:dbgl[debugfl
incp parameter can be used to define the include path used for config files (@include directive)\n \
defaults is set to the path of the main config file.\n";
#define CONFIG_SECTIONNAME "config"
#define CONFIGPARAM_DEBUGFLAGS_IDX 0
#define CONFIG_HELP_TMPDIR "<Repository to create temporary file>"
#define CONFIG_SECTIONNAME "config"
#define CONFIGP_DEBUGFLAGS "debugflags"
#define CONFIGP_TMPDIR "tmpdir"
static paramdef_t Config_Params[] = {
/*-----------------------------------------------------------------------------------------------------------------------*/
/* config parameters for config module */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------*/
{"debugflags", config_helpstr, 0, uptr:NULL, defintval:0, TYPE_MASK, 0},
/*--------------------------------------------------------------------------------------------------------------------------*/
/* config parameters for config module */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*--------------------------------------------------------------------------------------------------------------------------*/
{CONFIGP_DEBUGFLAGS, config_helpstr, 0, uptr:NULL, defintval:0, TYPE_MASK, 0},
{CONFIGP_TMPDIR, CONFIG_HELP_TMPDIR,PARAMFLAG_NOFREE, strptr:NULL, defstrval:"/tmp" ,TYPE_STRING, 0},
};
#else
@@ -113,6 +134,7 @@ extern configmodule_interface_t *cfgptr;
#define CONFIG_ENABLECMDLINEONLY (1<<1)
extern configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t initflags);
extern void end_configmodule(void);
extern void write_parsedcfg(void);
#define CONFIG_PRINTF_ERROR(f, x... ) if (isLogInitDone ()) { LOG_E(ENB_APP,f,x);} else {printf(f,x);}; if ( !CONFIG_ISFLAGSET(CONFIG_NOABORTONCHKF) ) exit_fun("exit because configuration failed\n");

View File

@@ -46,6 +46,7 @@
#define PARAMFLAG_NOFREE (1 << 3) // don't free parameter in end function
#define PARAMFLAG_BOOL (1 << 4) // integer param can be 0 or 1
#define PARAMFLAG_CMDLINE_NOPREFIXENABLED (1 << 5) // on the command line, allow a parameter to be specified without the prefix
#define PARAMFLAG_CMDLINEONLY (1 << 6) // this parameter cannot be specified in config file
/* Flags used by config modules to return info to calling modules and/or to for internal usage*/
#define PARAMFLAG_MALLOCINCONFIG (1 << 15) // parameter allocated in config module

View File

@@ -237,6 +237,9 @@ int config_get(paramdef_t *params, int numparams, char *prefix) {
if (ret >= 0) {
config_process_cmdline(params, numparams, prefix);
if ( cfgif->rtflags & CONFIG_SAVERUNCFG ) {
config_get_if()->set(params, numparams, prefix);
}
config_execcheck(params, numparams, prefix);
}
@@ -271,9 +274,11 @@ int config_getlist(paramlist_def_t *ParamList, paramdef_t *params, int numparams
char cfgpath[MAX_OPTNAME_SIZE*2 + 6]; /* prefix.listname.[listindex] */
for (int i = 0; i < ParamList->numelt; ++i) {
// TODO config_process_cmdline?
sprintf(cfgpath, "%s.[%i]", newprefix, i);
config_process_cmdline(ParamList->paramarray[i],numparams,cfgpath);
if ( config_get_if()->rtflags & CONFIG_SAVERUNCFG ) {
config_get_if()->set(ParamList->paramarray[i], numparams,cfgpath );
}
config_execcheck(ParamList->paramarray[i], numparams, cfgpath);
}

View File

@@ -34,8 +34,11 @@
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <libgen.h>
#include <time.h>
#include <libgen.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <netdb.h>
#include "config_libconfig.h"
#include "config_libconfig_private.h"
@@ -87,8 +90,222 @@ int read_intarray(paramdef_t *cfgoptions,config_setting_t *setting, char *cfgpat
return cfgoptions->numelt;
}
int config_libconfig_setparams(paramdef_t *cfgoptions, int numoptions, config_setting_t * asetting, char * prefix) {
int status;
int errors=0;
int notused=0;
int emptyla=0;
#define LIBCONFIG_NOTUSED_PARAMS "Not used? (NULL value ptr)"
char *secprefix=(prefix==NULL)?"":prefix;
for(int i=0; i<numoptions; i++) {
if (cfgoptions[i].paramflags & PARAMFLAG_CMDLINEONLY) {
continue;
printf_params("[LIBCONFIG] setting %s.%s skipped (command line only) \n",secprefix,cfgoptions[i].optname);
}
status=CONFIG_FALSE;
config_setting_t * psetting;
char *spath=malloc(((prefix==NULL)?0:strlen(prefix))+strlen(cfgoptions[i].optname)+10);
sprintf(spath,"%s%s%s",secprefix, (prefix==NULL)?"":".", cfgoptions[i].optname);
psetting = config_lookup(&(libconfig_privdata.runtcfg),spath);
free(spath);
if (psetting != NULL) {
printf_params("[LIBCONFIG] setting %s.%s already created \n",secprefix,cfgoptions[i].optname);
continue;
}
switch(cfgoptions[i].type) {
case TYPE_STRING:
psetting =config_setting_add(asetting,cfgoptions[i].optname,CONFIG_TYPE_STRING);
if (psetting!= NULL) {
char *value;
if (cfgoptions[i].strptr == NULL) {
notused++;
value=LIBCONFIG_NOTUSED_PARAMS;
} else {
if (cfgoptions[i].numelt == 0 ) {
value = *(cfgoptions[i].strptr);
} else {
value = (char *)(cfgoptions[i].strptr);
}
}
status=config_setting_set_string(psetting, value);
}
break;
case TYPE_STRINGLIST:
psetting =config_setting_add(asetting,cfgoptions[i].optname,CONFIG_TYPE_LIST);
if (psetting!= NULL)
{
if(cfgoptions[i].numelt <= 0) {
emptyla++;
printf_params("[LIBCONFIG], no element in list %s\n",cfgoptions[i].optname);
status=CONFIG_TRUE;
}
for (int j=0; j<cfgoptions[i].numelt ; j++) {
config_setting_t *elemsetting=config_setting_set_string_elem(psetting, -1,cfgoptions[i].strptr[j] );
if (elemsetting == NULL) {
fprintf(stderr,"[LIBCONFIG] Error: Creating list %s element %i value %s\n",cfgoptions[i].optname,j,cfgoptions[i].strptr[j]);
break;
} else
status=CONFIG_TRUE;
}
}
break;
case TYPE_UINT8:
case TYPE_INT8:
case TYPE_UINT16:
case TYPE_INT16:
case TYPE_UINT32:
case TYPE_INT32:
case TYPE_MASK:
psetting =config_setting_add(asetting,cfgoptions[i].optname,CONFIG_TYPE_INT);
if (psetting!= NULL)
status=config_setting_set_int(psetting, (int)*(cfgoptions[i].iptr) );
break;
case TYPE_UINT64:
case TYPE_INT64:
psetting =config_setting_add(asetting,cfgoptions[i].optname,CONFIG_TYPE_INT64);
if (psetting!= NULL)
status=config_setting_set_int64(psetting, (int64_t)*(cfgoptions[i].i64ptr) );
break;
case TYPE_UINTARRAY:
case TYPE_INTARRAY:
psetting =config_setting_add(asetting,cfgoptions[i].optname,CONFIG_TYPE_ARRAY);
if (psetting!= NULL) {
if(cfgoptions[i].numelt <= 0) {
emptyla++;
printf_params("[LIBCONFIG], no element in array %s.%s\n",secprefix,cfgoptions[i].optname);
status=CONFIG_TRUE;
}
for (int j=0; j<cfgoptions[i].numelt ; j++) {
config_setting_t *elemsetting=config_setting_set_int_elem(psetting, -1,(int)(cfgoptions[i].iptr[j]) );
if (elemsetting == NULL) {
fprintf(stderr,"[LIBCONFIG] Error: Creating array %s.%s, at index %i value %i\n",secprefix,cfgoptions[i].optname,j,(int)(cfgoptions[i].iptr[j]));
break;
} else
status=CONFIG_TRUE;
}
}
break;
case TYPE_DOUBLE:
psetting =config_setting_add(asetting,cfgoptions[i].optname,CONFIG_TYPE_FLOAT);
if (psetting!= NULL)
status=config_setting_set_float(psetting, (double)*(cfgoptions[i].dblptr) );
break;
case TYPE_IPV4ADDR:
psetting =config_setting_add(asetting,cfgoptions[i].optname,CONFIG_TYPE_STRING);
if (psetting!= NULL) {
char ipstr[INET_ADDRSTRLEN];
if (inet_ntop(AF_INET, cfgoptions[i].uptr, ipstr, INET_ADDRSTRLEN) == NULL) {
notused++;
sprintf(ipstr,"undef");
} else {
status=config_setting_set_string(psetting, ipstr);
}
}
break;
case TYPE_LIST:
break;
default:
fprintf(stderr,"[LIBCONFIG] %s.%s type %i not supported\n",secprefix,cfgoptions[i].optname ,cfgoptions[i].type);
status=CONFIG_FALSE;
break;
} /* switch on param type */
if (status != CONFIG_TRUE) {
errors++;
fprintf(stderr,"[LIBCONFIG] Error creating setting %i: %s.%s type %i\n",i,secprefix,cfgoptions[i].optname ,cfgoptions[i].type);
}
}
printf_params("[LIBCONFIG], in group \"%s\" %i settings \n",secprefix,numoptions);
if (notused > 0)
printf_params("[LIBCONFIG], ..... %i settings with NULL value pointer\n",notused);
if (errors >0)
fprintf(stderr,"[LIBCONFIG] .....%i settings creation errors \n",errors);
if (emptyla >0)
fprintf(stderr,"[LIBCONFIG] .....%i empty lists or arrays settings \n",emptyla);
if ( cfgptr->status ) {
cfgptr->status->num_err_nullvalue += notused;
cfgptr->status->num_err_write += errors;
cfgptr->status->num_write += numoptions;
cfgptr->status->emptyla += emptyla;
}
return errors;
}
int config_libconfig_set(paramdef_t *cfgoptions, int numoptions, char *prefix ) {
char *tokctx1=NULL;
int listidx=-1;
char *prefixbck=NULL;
char *prefix_elem1=NULL;
config_setting_t * asetting = config_root_setting (&(libconfig_privdata.runtcfg));
if (prefix != NULL) {
prefixbck=strdup(prefix);
prefix_elem1 = strtok_r(prefixbck, ".", &tokctx1);
}
printf_params("[LIBCONFIG], processing prefix %s\n",(prefix==NULL)?"NULL":prefix);
/* parse the prefix , possibly creating groups, lists and list elements */
while (prefix_elem1 != NULL) {
int n1=strlen(prefix_elem1);
char *prefix_elem2 = prefix_elem1+n1+1 ;
printf_params("[LIBCONFIG], processing elem1 %s elem2 %s\n",prefix_elem1,prefix_elem2);
/* prefix (the path to the parameter name) may contain groups and elements from a list, which are specified with [] */
if (prefix_elem2[0] != '[') { // not a list
config_setting_t *tmpset = config_setting_lookup(asetting,prefix_elem1);
if (tmpset == NULL)
asetting = config_setting_add (asetting, prefix_elem1, CONFIG_TYPE_GROUP);
else
asetting = tmpset;
printf_params("[LIBCONFIG], creating or looking for group %s: %s\n",prefix_elem1,(asetting==NULL)?"NOK":"OK");
} else { // a list
listidx=(int)strtol(prefix_elem2+1,NULL,10);
if (errno == EINVAL || errno == ERANGE) {
printf_params("[LIBCONFIG], Error %s looking for list index in %s \n",strerror(errno), prefix_elem2);
break;
}
config_setting_t *tmpset = config_setting_lookup(asetting,prefix_elem1);
if (tmpset == NULL)
asetting = config_setting_add (asetting, prefix_elem1, CONFIG_TYPE_LIST);
else
asetting = tmpset;
printf_params("[LIBCONFIG], creating or looking for list %s: %s\n",prefix_elem1,(asetting==NULL)?"NOK":"OK");
if (asetting != NULL) {
tmpset = config_setting_get_elem (asetting, listidx);
if (tmpset == NULL)
asetting = config_setting_add (asetting, NULL, CONFIG_TYPE_GROUP);
else
asetting = tmpset;
printf_params("[LIBCONFIG], creating or looking for list element %i: %s\n",listidx,(asetting==NULL)?"NOK":"OK");
}
prefix_elem1 = strtok_r(NULL, ".", &tokctx1); //skip the [x] elements we already took care of it
if (prefix_elem1 == NULL) {
fprintf(stderr, "[LICONFIG] End of parsing %s \n",prefix);
break;
}
}
if (asetting == NULL) {
fprintf(stderr,"[LIBCONFIG] Error creating setting %s %s %i\n",prefix_elem1,prefix_elem2,listidx);
}
prefix_elem1 = strtok_r(NULL, ".", &tokctx1);
}
free(prefixbck);
if (asetting != NULL) {
config_libconfig_setparams(cfgoptions, numoptions,asetting,prefix);
printf_params("[LIBCONFIG] %i settings added in group %s\n",numoptions,(prefix==NULL)?"":prefix);
return 0;
} else {
fprintf(stderr,"[LIBCONFIG] Error parsing %s params, skipped...\n",(prefix==NULL)?"":prefix);
return -1;
}
}
int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix ) {
@@ -376,14 +593,43 @@ int config_libconfig_init(char *cfgP[], int numP) {
free(tmppath);
return -1;
}
/* possibly init a libconfig struct for saving really used params */
if( cfgptr->rtflags & CONFIG_SAVERUNCFG ) {
config_init ( &(libconfig_privdata.runtcfg));
// config_set_options (&(libconfig_privdata.runtcfg), CONFIG_OPTION_ALLOW_OVERRIDES, CONFIG_TRUE);
}
free(tmppath);
return 0;
}
void config_libconfig_write_parsedcfg(void) {
if( cfgptr->rtflags & CONFIG_SAVERUNCFG ) {
char *fname=strdup(libconfig_privdata.configfile);
int newcfgflen = strlen( libconfig_privdata.configfile) + strlen(cfgptr->tmpdir) + 20;
cfgptr->status->debug_cfgname = realloc(cfgptr->status->debug_cfgname, newcfgflen);
time_t t = time(NULL);
struct tm tm = *localtime(&t);
snprintf (cfgptr->status->debug_cfgname,newcfgflen, "%s/%s-run%d_%02d_%02d_%02d%02d",cfgptr->tmpdir,basename(fname),
tm.tm_year + 1900,tm.tm_mon + 1,tm.tm_mday, tm.tm_hour, tm.tm_min);
if ( config_write_file (&(libconfig_privdata.runtcfg) , cfgptr->status->debug_cfgname) != CONFIG_TRUE) {
fprintf(stderr,"[LIBCONFIG] %s %d file %s - line %d: %s\n",__FILE__, __LINE__,
cfgptr->status->debug_cfgname, config_error_line(&(libconfig_privdata.runtcfg)),
config_error_text(&(libconfig_privdata.runtcfg)));
} else {
printf("[LIBCONFIG] file %s created successfully\n", cfgptr->status->debug_cfgname);
}
free(fname);
} else {
printf("[LIBCONFIG] Cannot create config file after parsing: CONFIG_SAVERUNCFG flag not specified\n");
}
}
void config_libconfig_end(void ) {
config_destroy(&(libconfig_privdata.cfg));
if( cfgptr->rtflags & CONFIG_SAVERUNCFG ) {
config_destroy(&(libconfig_privdata.runtcfg));
}
if ( libconfig_privdata.configfile != NULL ) {
free(libconfig_privdata.configfile);
libconfig_privdata.configfile=NULL;

View File

@@ -40,12 +40,11 @@ extern "C"
#include "common/config/config_paramdesc.h"
typedef struct libconfig_privatedata {
char *configfile;
config_t cfg;
config_t runtcfg;
} libconfig_privatedata_t;
#ifdef __cplusplus

View File

@@ -302,8 +302,8 @@ void log_getconfig(log_t *g_log)
for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
if(g_log->log_component[i].name == NULL) {
g_log->log_component[i].name = malloc(16);
sprintf((char *)g_log->log_component[i].name,"comp%i?",i);
g_log->log_component[i].name = calloc(1,16);
snprintf((char *)g_log->log_component[i].name,15,"undefcomp%i",i);
logparams_logfile[i].paramflags = PARAMFLAG_DONOTREAD;
logparams_level[i].paramflags = PARAMFLAG_DONOTREAD;
}

View File

@@ -191,65 +191,17 @@ int PRBalloc_to_locationandbandwidth(int NPRB,int RBstart) {
return(PRBalloc_to_locationandbandwidth0(NPRB,RBstart,275));
}
/// Target code rate tables indexed by Imcs
/* TS 38.214 table 5.1.3.1-1 - MCS index table 1 for PDSCH */
uint16_t nr_target_code_rate_table1[29] = {120, 157, 193, 251, 308, 379, 449, 526, 602, 679, 340, 378, 434, 490, 553, \
616, 658, 438, 466, 517, 567, 616, 666, 719, 772, 822, 873, 910, 948};
int cce_to_reg_interleaving(const int R, int k, int n_shift, const int C, int L, const int N_regs) {
/* TS 38.214 table 5.1.3.1-2 - MCS index table 2 for PDSCH */
// Imcs values 20 and 26 have been multiplied by 2 to avoid the floating point
uint16_t nr_target_code_rate_table2[28] = {120, 193, 308, 449, 602, 378, 434, 490, 553, 616, 658, 466, 517, 567, \
616, 666, 719, 772, 822, 873, 1365, 711, 754, 797, 841, 885, 1833, 948};
/* TS 38.214 table 5.1.3.1-3 - MCS index table 3 for PDSCH */
uint16_t nr_target_code_rate_table3[29] = {30, 40, 50, 64, 78, 99, 120, 157, 193, 251, 308, 379, 449, 526, 602, 340, \
378, 434, 490, 553, 616, 438, 466, 517, 567, 616, 666, 719, 772};
uint16_t nr_tbs_table[93] = {24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 208, 224, 240, 256, 272, 288, 304, 320, \
336, 352, 368, 384, 408, 432, 456, 480, 504, 528, 552, 576, 608, 640, 672, 704, 736, 768, 808, 848, 888, 928, 984, 1032, 1064, 1128, 1160, 1192, 1224, 1256, \
1288, 1320, 1352, 1416, 1480, 1544, 1608, 1672, 1736, 1800, 1864, 1928, 2024, 2088, 2152, 2216, 2280, 2408, 2472, 2536, 2600, 2664, 2728, 2792, 2856, 2976, \
3104, 3240, 3368, 3496, 3624, 3752, 3824};
uint8_t nr_get_Qm(uint8_t Imcs, uint8_t table_idx) {
switch(table_idx) {
case 1:
return (((Imcs<10)||(Imcs==29))?2:((Imcs<17)||(Imcs==30))?4:((Imcs<29)||(Imcs==31))?6:-1);
break;
case 2:
return (((Imcs<5)||(Imcs==28))?2:((Imcs<11)||(Imcs==29))?4:((Imcs<20)||(Imcs==30))?6:((Imcs<28)||(Imcs==31))?8:-1);
break;
case 3:
return (((Imcs<15)||(Imcs==29))?2:((Imcs<21)||(Imcs==30))?4:((Imcs<29)||(Imcs==31))?6:-1);
break;
default:
AssertFatal(0, "Invalid MCS table index %d (expected in range [1,3])\n", table_idx);
return(0);
break;
}
}
uint32_t nr_get_code_rate(uint8_t Imcs, uint8_t table_idx) {
switch(table_idx) {
case 1:
return (nr_target_code_rate_table1[Imcs]);
break;
case 2:
return (nr_target_code_rate_table2[Imcs]);
break;
case 3:
return (nr_target_code_rate_table3[Imcs]);
break;
default:
AssertFatal(0, "Invalid MCS table index %d (expected in range [1,3])\n", table_idx);
return(0);
break;
int f; // interleaving function
if(R==0)
f = k;
else {
int c = k/R;
int r = k%R;
f = (r*C + c + n_shift)%(N_regs/L);
}
return f;
}
void get_coreset_rballoc(uint8_t *FreqDomainResource,int *n_rb,int *rb_offset) {
@@ -503,7 +455,6 @@ int get_nr_table_idx(int nr_bandP, uint8_t scs_index) {
return i;
}
int get_subband_size(int NPRB,int size) {
// implements table 5.2.1.4-2 from 36.214
//

View File

@@ -57,7 +57,7 @@ static inline int get_num_dmrs(uint16_t dmrs_mask ) {
return(num_dmrs);
}
int cce_to_reg_interleaving(const int R, int k, int n_shift, const int C, int L, const int N_regs);
int get_SLIV(uint8_t S, uint8_t L);
void get_coreset_rballoc(uint8_t *FreqDomainResource,int *n_rb,int *rb_offset);
uint16_t config_bandwidth(int mu, int nb_rb, int nr_band);
@@ -69,12 +69,6 @@ int NRRIV2BW(int locationAndBandwidth,int N_RB);
int NRRIV2PRBOFFSET(int locationAndBandwidth,int N_RB);
int PRBalloc_to_locationandbandwidth0(int NPRB,int RBstart,int BWPsize);
int PRBalloc_to_locationandbandwidth(int NPRB,int RBstart);
extern uint16_t nr_target_code_rate_table1[29];
extern uint16_t nr_target_code_rate_table2[28];
extern uint16_t nr_target_code_rate_table3[29];
extern uint16_t nr_tbs_table[93];
uint8_t nr_get_Qm(uint8_t Imcs, uint8_t table_idx);
uint32_t nr_get_code_rate(uint8_t Imcs, uint8_t table_idx);
int get_subband_size(int NPRB,int size);
void SLIV2SL(int SLIV,int *S,int *L);
int get_dmrs_port(int nl, uint16_t dmrs_ports);

View File

@@ -450,6 +450,7 @@ extern "C" {
void itti_wait_tasks_end(void) {
shutting_down = false;
signal(SIGTERM, catch_sigterm);
//signal(SIGINT, catch_sigterm);
while (! shutting_down)
{
sleep(24 * 3600);

View File

@@ -80,6 +80,7 @@ paramdef_t telnetoptions[] = {
{"loopdelay", "<loop command delay (ms)>\n", 0, uptr:&(telnetparams.loopdelay), defuintval:5000, TYPE_UINT, 0 },
{"histfile", "<history file name>\n", PARAMFLAG_NOFREE, strptr:&(telnetparams.histfile), defstrval:"oaitelnet.history", TYPE_STRING, 0 },
{"histsize", "<history sizes>\n", 0, iptr:&(telnetparams.histsize), defuintval:50, TYPE_INT, 0 },
{"logfile", "log file hen redirecting", PARAMFLAG_NOFREE, strptr:&(telnetparams.logfile), defstrval:"oaisoftmodem.log", TYPE_STRING, 0 },
{"phypbsize", "<phy dump buff size (bytes)>\n",0, uptr:&(telnetparams.phyprntbuff_size),defuintval:65000, TYPE_UINT, 0 },
{TELNETSRV_OPTNAME_STATICMOD, "<static modules selection>\n", 0, strlistptr:NULL, defstrlistval:telnet_defstatmod,TYPE_STRINGLIST,(sizeof(telnet_defstatmod)/sizeof(char *))},
{TELNETSRV_OPTNAME_SHRMOD, "<dynamic modules selection>\n", 0, strlistptr:NULL, defstrlistval:NULL,TYPE_STRINGLIST,0 }
@@ -90,25 +91,31 @@ int get_phybsize(void) {
};
int add_telnetcmd(char *modulename,telnetshell_vardef_t *var, telnetshell_cmddef_t *cmd );
int setoutput(char *buff, int debug, telnet_printfunc_t prnt);
int wsetoutput(char *buff, int debug, telnet_printfunc_t prnt, ... );
int setparam(char *buff, int debug, telnet_printfunc_t prnt);
int wsetparam(char *buff, int debug, telnet_printfunc_t prnt, ... );
int history_cmd(char *buff, int debug, telnet_printfunc_t prnt);
telnetshell_vardef_t telnet_vardef[] = {
{"debug",TELNET_VARTYPE_INT32,&telnetparams.telnetdbg},
{"prio",TELNET_VARTYPE_INT32,&telnetparams.priority},
{"loopc",TELNET_VARTYPE_INT32,&telnetparams.loopcount},
{"loopd",TELNET_VARTYPE_INT32,&telnetparams.loopdelay},
{"phypb",TELNET_VARTYPE_INT32,&telnetparams.phyprntbuff_size},
{"hsize",TELNET_VARTYPE_INT32,&telnetparams.histsize},
{"hfile",TELNET_VARTYPE_STRING,&telnetparams.histfile},
{"",0,NULL}
{"debug", TELNET_VARTYPE_INT32,0,&telnetparams.telnetdbg},
{"prio", TELNET_VARTYPE_INT32,0,&telnetparams.priority},
{"loopc", TELNET_VARTYPE_INT32,0,&telnetparams.loopcount},
{"loopd", TELNET_VARTYPE_INT32,0,&telnetparams.loopdelay},
{"phypb", TELNET_VARTYPE_INT32,0,&telnetparams.phyprntbuff_size},
{"hsize", TELNET_VARTYPE_INT32,0,&telnetparams.histsize},
{"hfile", TELNET_VARTYPE_STRING,TELNET_CHECKVAL_RDONLY,&telnetparams.histfile},
{"logfile",TELNET_VARTYPE_STRING,0,&telnetparams.logfile},
{"",0,0,NULL}
};
telnetshell_cmddef_t telnet_cmdarray[] = {
{"redirlog","[here,file,off]",setoutput},
{"param","[prio]",setparam},
{"history","[list,reset]",history_cmd},
{"","",NULL},
{"redirlog","[here,file,off]",setoutput,{NULL},TELNETSRV_CMDFLAG_TELNETONLY,NULL},
{"redirlog file","",setoutput,{NULL},TELNETSRV_CMDFLAG_WEBSRVONLY,NULL},
{"redirlog off","",setoutput,{NULL},TELNETSRV_CMDFLAG_WEBSRVONLY,NULL},
{"param","[prio]",setparam,{wsetparam},0,NULL},
{"history","[list,reset]",history_cmd,{NULL},TELNETSRV_CMDFLAG_TELNETONLY,NULL},
{"","",NULL,{NULL},0,NULL},
};
@@ -127,36 +134,40 @@ void client_printf(const char *message, ...) {
return ;
}
#define NICE_MAX 19
#define NICE_MIN -20
void set_sched(pthread_t tid, int pid, int priority) {
int rt;
struct sched_param schedp;
int policy;
char strpolicy[10];
int niceval=0;
//sched_get_priority_max(SCHED_FIFO)
if (priority < NICE_MIN) {
if (priority < -100 && priority > -200) { //RR priority 1 to 99 (high) mapped to oai priority -101 to -199 (high)
policy=SCHED_RR;
sprintf(strpolicy,"%s","RR");
schedp.sched_priority= -(priority + 100 );
} else if (priority < 0 && priority > -100 ) {
policy=SCHED_FIFO;
sprintf(strpolicy,"%s","fifo");
schedp.sched_priority= NICE_MIN - priority ;
if ( (schedp.sched_priority < sched_get_priority_min(SCHED_FIFO)) ||
(schedp.sched_priority > sched_get_priority_max(SCHED_FIFO)) ) {
client_printf("Error: %i invalid prio, should be %i to %i, \n",
priority, NICE_MIN -sched_get_priority_min(SCHED_FIFO),
NICE_MIN - sched_get_priority_max(SCHED_FIFO) );
}
} else if (priority > NICE_MAX) {
schedp.sched_priority= -priority ;//fifo priority 1 to 99 (high) mapped to oai priority -1 to -99 (high)
} else if (priority >= 0 && priority <= (NICE_MAX-NICE_MIN)) { // other (normal) nice value -20 to 19 mapped to oai priority 0 to 39
policy=SCHED_OTHER;
sprintf(strpolicy,"%s","other");
schedp.sched_priority=0;
niceval=priority+NICE_MIN;
} else if (priority > NICE_MAX-NICE_MIN && priority <= (2*(NICE_MAX-NICE_MIN)+1) ) {// batch (normal) nice value -20 to 19 mapped to oai priority 40 to 79
policy=SCHED_BATCH;
sprintf(strpolicy,"%s","batch");
niceval=priority+NICE_MIN-(NICE_MAX-NICE_MIN+1);
schedp.sched_priority=0;
} else if (priority > (2*(NICE_MAX-NICE_MIN)+1)){// fifo mapped to oai priority 80
policy=SCHED_IDLE;
sprintf(strpolicy,"%s","idle");
schedp.sched_priority=0;
} else {
policy=SCHED_OTHER;
sprintf(strpolicy,"%s","other");
schedp.sched_priority=0;
client_printf("Error: %i invalid priority \n",priority );
return;
}
if( tid != 0) {
rt = pthread_setschedparam(tid, policy, &schedp);
} else if(pid > 0) {
@@ -172,15 +183,15 @@ void set_sched(pthread_t tid, int pid, int priority) {
} else {
client_printf("policy set to %s, priority %i\n",strpolicy,schedp.sched_priority);
if ( policy==SCHED_OTHER) {
if ( policy==SCHED_OTHER || policy==SCHED_BATCH ) {
rt = getpriority(PRIO_PROCESS,tid);
if (rt != -1) {
rt = setpriority(PRIO_PROCESS,tid,priority);
rt = setpriority(PRIO_PROCESS,tid,niceval);
if (rt < 0) {
client_printf("Error %i: %s trying to set nice value of thread %u to %i\n",
errno,strerror(errno),tid,priority);
errno,strerror(errno),tid,niceval);
}
} else {
client_printf("Error %i: %s trying to get nice value of thread %u \n",
@@ -189,17 +200,17 @@ void set_sched(pthread_t tid, int pid, int priority) {
}
}
if ( policy == SCHED_OTHER) {
if ( policy == SCHED_OTHER || policy==SCHED_BATCH) {
if ( tid > 0 && tid != pthread_self()) {
client_printf("setting nice value using a thread id not implemented....\n");
} else if (pid > 0) {
errno=0;
rt = setpriority(PRIO_PROCESS,pid,priority);
rt = setpriority(PRIO_PROCESS,pid,niceval);
if (rt != 0) {
client_printf("Error %i: %s calling setpriority, \n",errno,strerror(errno));
} else {
client_printf("nice value set to %i\n",priority);
client_printf("nice value set to %i\n",niceval);
}
}
}
@@ -236,20 +247,29 @@ void redirstd(char *newfname,telnet_printfunc_t prnt ) {
fd=freopen(newfname, "w", stdout);
if (fd == NULL) {
prnt("ERROR: stdout redir to %s error %s",strerror(errno));
prnt("ERROR: stdout redir to %s error %s\n",strerror(errno));
} else {
prnt("stdout redirected to %s\n",newfname);
}
fd=freopen(newfname, "w", stderr);
if (fd == NULL) {
prnt("ERROR: stderr redir to %s error %s",strerror(errno));
prnt("ERROR: stderr redir to %s error %s\n",strerror(errno));
} else {
prnt("stderr redirected to %s\n",newfname);
}
}
int wsetoutput(char *buffer, int debug, telnet_printfunc_t prnt, ... ) {
return 0;
}
int setoutput(char *buff, int debug, telnet_printfunc_t prnt) {
char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE];
char *logfname;
char stdout_str[64];
#define LOGFILE "logfile.log"
memset(cmds,0,sizeof(cmds));
sscanf(buff,"%9s %32s %9s %9s %9s", cmds[0],cmds[1],cmds[2],cmds[3],cmds[4] );
@@ -265,10 +285,10 @@ int setoutput(char *buff, int debug, telnet_printfunc_t prnt) {
if (strncasecmp(cmds[0],"file",4) == 0) {
if (cmds[1][0] == 0)
logfname=LOGFILE;
logfname=telnetparams.logfile;
else
logfname=cmds[1];
prnt("Log output redirected to (%s)\n",logfname);
fflush(stdout);
redirstd(logfname,prnt);
}
@@ -281,6 +301,10 @@ int setoutput(char *buff, int debug, telnet_printfunc_t prnt) {
return CMDSTATUS_FOUND;
} /* setoutput */
int wsetparam(char *buff, int debug, telnet_printfunc_t prnt, ...) {
return 0;
}
int setparam(char *buff, int debug, telnet_printfunc_t prnt) {
char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE];
memset(cmds,0,sizeof(cmds));
@@ -344,6 +368,98 @@ int history_cmd(char *buff, int debug, telnet_printfunc_t prnt) {
/*
generic commands available for all modules loaded by the server
*/
char *telnet_getvarvalue(telnetshell_vardef_t *var, int varindex) {
char *val;
switch(var[varindex].vartype) {
case TELNET_VARTYPE_INT32:
val=malloc(64);
snprintf(val,64,"%i",*(int32_t *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_INT64:
val=malloc(128);
snprintf(val,128,"%lli",(long long)*(int64_t *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_INT16:
val=malloc(16);
snprintf(val,16,"%hi",*(short *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_INT8:
val=malloc(16);
snprintf(val,16,"%i",(int)(*(int8_t *)(var[varindex].varvalptr)));
break;
case TELNET_VARTYPE_UINT:
val=malloc(64);
snprintf(val,64,"%u",*(unsigned int *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_DOUBLE:
val=malloc(32);
snprintf(val,32,"%g\n",*(double *)(var[varindex].varvalptr));
break;
case TELNET_VARTYPE_STRING:
val = strdup(*(char **)(var[varindex].varvalptr));
break;
default:
val=malloc(64);
snprintf(val,64,"ERR:var %i unknown type",varindex);
break;
}
return val;
}
int telnet_setvarvalue(telnetshell_vardef_t *var,char *strval, telnet_printfunc_t prnt ) {
int st=0;
switch(var->vartype) {
case TELNET_VARTYPE_INT32:
*(int *)(var->varvalptr) = (int)strtol(strval,NULL,0);
if (prnt != NULL)
prnt("%i\n",*(int *)(var->varvalptr));
break;
case TELNET_VARTYPE_INT16:
*(short *)(var->varvalptr) = (short)strtol(strval,NULL,0);
if (prnt != NULL)
prnt("%hi\n",*(short *)(var->varvalptr));
break;
case TELNET_VARTYPE_INT8:
*(char *)(var->varvalptr) = (char)strtol(strval,NULL,0);
if (prnt != NULL)
prnt("%i\n",*(int *)(var->varvalptr));
break;
case TELNET_VARTYPE_UINT:
*(unsigned int *)(var->varvalptr) = (unsigned int)strtol(strval,NULL,0);
if (prnt != NULL)
prnt("%u\n",*(unsigned int *)(var->varvalptr));
break;
case TELNET_VARTYPE_DOUBLE:
*(double *)(var->varvalptr) = strtod(strval,NULL);
if (prnt != NULL)
prnt("%g\n",*(double *)(var->varvalptr));
break;
case TELNET_VARTYPE_STRING:
sprintf(*(char **)(var->varvalptr),"%s", strval);
if (prnt != NULL)
prnt("\"%s\"\n",*(char **)(var->varvalptr));
break;
default:
if (prnt != NULL)
prnt("unknown type\n");
st=-1;
break;
}
return st;
}
int setgetvar(int moduleindex,char getorset,char *params) {
int n,i;
@@ -357,81 +473,15 @@ int setgetvar(int moduleindex,char getorset,char *params) {
if (n > 0 && (getorset == 'g' || getorset == 'G')) {
client_printf("%s, %s = ", telnetparams.CmdParsers[moduleindex].module,
telnetparams.CmdParsers[moduleindex].var[i].varname );
switch(telnetparams.CmdParsers[moduleindex].var[i].vartype) {
case TELNET_VARTYPE_INT32:
client_printf("%i\n",*(int32_t *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_INT64:
client_printf("%lli\n",*(int64_t *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_INT16:
client_printf("%hi\n",*(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_INT8:
client_printf("%i\n",(int)(*(int8_t *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)));
break;
case TELNET_VARTYPE_UINT:
client_printf("%u\n",*(unsigned int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_DOUBLE:
client_printf("%g\n",*(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_STRING:
client_printf("\"%s\"\n",*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
default:
client_printf("unknown type\n");
break;
}
char *strval=telnet_getvarvalue(telnetparams.CmdParsers[moduleindex].var, i);
client_printf("%s\n",strval);
free(strval);
}
if (n > 1 && (getorset == 's' || getorset == 'S')) {
client_printf("%s, %s set to \n", telnetparams.CmdParsers[moduleindex].module,
telnetparams.CmdParsers[moduleindex].var[i].varname);
telnet_setvarvalue(&(telnetparams.CmdParsers[moduleindex].var[i]),varval, client_printf);
switch(telnetparams.CmdParsers[moduleindex].var[i].vartype) {
case TELNET_VARTYPE_INT32:
*(int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (int)strtol(varval,NULL,0);
client_printf("%i\n",*(int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_INT16:
*(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (short)strtol(varval,NULL,0);
client_printf("%hi\n",*(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_INT8:
*(char *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (char)strtol(varval,NULL,0);
client_printf("%i\n",*(int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_UINT:
*(unsigned int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (unsigned int)strtol(varval,NULL,0);
client_printf("%u\n",*(unsigned int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_DOUBLE:
*(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = strtod(varval,NULL);
client_printf("%g\n",*(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
case TELNET_VARTYPE_STRING:
sprintf(*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr),"%s", varval);
client_printf("\"%s\"\n",*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr));
break;
default:
client_printf("unknown type\n");
break;
}
}
}
}
@@ -442,6 +492,13 @@ int setgetvar(int moduleindex,char getorset,char *params) {
return CMDSTATUS_VARNOTFOUND;
}
void telnetsrv_freetbldata(webdatadef_t *wdata) {
for(int i=0;i< wdata->numlines; i++)
for(int j=0;j< wdata->numcols ; j++)
if ( wdata->columns[j].coltype & TELNET_VAR_NEEDFREE )
free(wdata->lines[i].val[j]);
}
/*----------------------------------------------------------------------------------------------------*/
char *get_time(char *buff,int bufflen) {
struct tm tmstruct;
@@ -449,6 +506,16 @@ char *get_time(char *buff,int bufflen) {
strftime (buff, bufflen, "%Y-%m-%d %H:%M:%S.000", localtime_r(&now,&tmstruct));
return buff;
}
void telnet_pushcmd(telnetshell_cmddef_t *cmd, char *cmdbuff, telnet_printfunc_t prnt) {
notifiedFIFO_elt_t *msg =newNotifiedFIFO_elt(sizeof(telnetsrv_qmsg_t),0,NULL,NULL);
telnetsrv_qmsg_t *cmddata=NotifiedFifoData(msg);
cmddata->cmdfunc=(qcmdfunc_t)cmd->cmdfunc;
cmddata->prnt=prnt;
cmddata->debug=telnetparams.telnetdbg;
if (cmdbuff != NULL)
cmddata->cmdbuff=strdup(cmdbuff);
pushNotifiedFIFO(cmd->qptr, msg);
}
int process_command(char *buf) {
int i,j,k;
@@ -459,7 +526,7 @@ int process_command(char *buf) {
int rt;
memset(modulename,0,sizeof(modulename));
memset(cmd,0,sizeof(cmd));
extern char **environ;
if (strncasecmp(buf,"ex",2) == 0)
return CMDSTATUS_EXIT;
@@ -474,6 +541,8 @@ int process_command(char *buf) {
}
for(j=0; telnetparams.CmdParsers[i].cmd[j].cmdfunc != NULL ; j++) {
if ( telnetparams.CmdParsers[i].cmd[j].cmdflags & TELNETSRV_CMDFLAG_WEBSRVONLY )
continue;
client_printf(" %s %s %s\n",
telnetparams.CmdParsers[i].module,telnetparams.CmdParsers[i].cmd[j].cmdname,
telnetparams.CmdParsers[i].cmd[j].helpstr);
@@ -489,7 +558,7 @@ int process_command(char *buf) {
j = sscanf(buf,"%19s %19s %m[^\t\n]",modulename,cmd,&cmdb);
if (telnetparams.telnetdbg > 0)
printf("process_command: %i words, module=%s cmd=%s, parameters= %s\n",j,modulename,cmd,cmdb);
printf("process_command: %i words, module=%s cmd=%s, parameters= %s\n",j,modulename,cmd,(cmdb==NULL)?"":cmdb);
for (i=0; j>=2 && telnetparams.CmdParsers[i].var != NULL && telnetparams.CmdParsers[i].cmd != NULL; i++) {
if ( (strncasecmp(telnetparams.CmdParsers[i].module,modulename,strlen(telnetparams.CmdParsers[i].module)) == 0)) {
@@ -504,14 +573,10 @@ int process_command(char *buf) {
} else {
for (k=0 ; telnetparams.CmdParsers[i].cmd[k].cmdfunc != NULL ; k++) {
if (strncasecmp(cmd, telnetparams.CmdParsers[i].cmd[k].cmdname,sizeof(telnetparams.CmdParsers[i].cmd[k].cmdname)) == 0) {
if (telnetparams.CmdParsers[i].cmd[k].cmdflags & TELNETSRV_CMDFLAG_WEBSRVONLY)
continue;
if (telnetparams.CmdParsers[i].cmd[k].qptr != NULL) {
notifiedFIFO_elt_t *msg =newNotifiedFIFO_elt(sizeof(telnetsrv_qmsg_t),0,NULL,NULL);
telnetsrv_qmsg_t *cmddata=NotifiedFifoData(msg);
cmddata->cmdfunc=(qcmdfunc_t)telnetparams.CmdParsers[i].cmd[k].cmdfunc;
cmddata->prnt=client_printf;
cmddata->debug=telnetparams.telnetdbg;
cmddata->cmdbuff=cmdb ? strdup(cmdb) : NULL;
pushNotifiedFIFO(telnetparams.CmdParsers[i].cmd[k].qptr, msg);
telnet_pushcmd(&(telnetparams.CmdParsers[i].cmd[k]), cmdb,client_printf );
} else {
telnetparams.CmdParsers[i].cmd[k].cmdfunc(cmdb, telnetparams.telnetdbg, client_printf);
}
@@ -845,39 +910,32 @@ int telnetsrv_autoinit(void) {
* function at init time. the telnet server is delivered with a set of commands which
* will be loaded or not depending on the telnet section of the config file
*/
int add_telnetcmd(char *modulename, telnetshell_vardef_t *var, telnetshell_cmddef_t *cmd)
{
int add_telnetcmd(char *modulename, telnetshell_vardef_t *var, telnetshell_cmddef_t *cmd) {
int i;
notifiedFIFO_t *afifo=NULL;
if( modulename == NULL || var == NULL || cmd == NULL) {
fprintf(stderr,"[TELNETSRV] Telnet server, add_telnetcmd: invalid parameters\n");
return -1;
}
int i;
for (i=0; i<TELNET_MAXCMD ; i++) {
cmdparser_t *CmdParser = &telnetparams.CmdParsers[i];
if (CmdParser->var == NULL) {
strncpy(CmdParser->module, modulename, sizeof(CmdParser->module) - 1);
CmdParser->cmd = cmd;
CmdParser->var = var;
printf("[TELNETSRV] Telnet server: module %i = %s added to shell\n",
i, CmdParser->module);
break;
}
}
if (i == TELNET_MAXCMD) {
fprintf(stderr, "[TELNETSRV] TELNET_MAXCMD reached, cannot add new module %s\n", modulename);
return -1;
}
notifiedFIFO_t *afifo = NULL;
for (int k = 0; cmd[k].cmdfunc != NULL ; k++) {
if (cmd[k].cmdflags & TELNETSRV_CMDFLAG_PUSHINTPOOLQ) {
if (afifo == NULL) {
afifo = malloc(sizeof(notifiedFIFO_t));
initNotifiedFIFO(afifo);
if (telnetparams.CmdParsers[i].var == NULL) {
strncpy(telnetparams.CmdParsers[i].module,modulename,sizeof(telnetparams.CmdParsers[i].module)-1);
telnetparams.CmdParsers[i].cmd = cmd;
telnetparams.CmdParsers[i].var = var;
for (int j=0; cmd[j].cmdfunc != NULL ;j++) {
if (cmd[j].cmdflags & TELNETSRV_CMDFLAG_PUSHINTPOOLQ) {
if (afifo == NULL) {
afifo = malloc(sizeof(notifiedFIFO_t));
initNotifiedFIFO(afifo);
}
cmd[j].qptr = afifo;
}
}
cmd[k].qptr = afifo;
printf("[TELNETSRV] Telnet server: module %i = %s added to shell\n",
i,telnetparams.CmdParsers[i].module);
break;
}
}
@@ -903,10 +961,16 @@ int telnetsrv_checkbuildver(char *mainexec_buildversion, char **shlib_buildvers
}
int telnetsrv_getfarray(loader_shlibfunc_t **farray) {
*farray=malloc(sizeof(loader_shlibfunc_t)*2);
*farray=malloc(sizeof(loader_shlibfunc_t)*3);
(*farray)[0].fname=TELNET_ADDCMD_FNAME;
(*farray)[0].fptr=(int (*)(void) )add_telnetcmd;
(*farray)[1].fname=TELNET_POLLCMDQ_FNAME;
(*farray)[1].fptr=(int (*)(void) )poll_telnetcmdq;
return ( 2);
(*farray)[2].fname=TELNET_PUSHCMD_FNAME;
(*farray)[2].fptr=(int (*)(void) )telnet_pushcmd;
return ( 3);
}
/* for webserver interface, needs access to some telnet server paramaters */
telnetsrv_params_t *get_telnetsrv_params(void) {
return &telnetparams;
}

View File

@@ -48,19 +48,55 @@
#define CMDSTATUS_VARNOTFOUND 3
#define CMDSTATUS_NOTFOUND 4
/* definitions to store 2 dim table, used to store command results before */
/* displaying them either on console or web page */
#define TELNET_MAXLINE_NUM 100
#define TELNET_MAXCOL_NUM 10
typedef struct col {
char coltitle[TELNET_CMD_MAXSIZE];
unsigned int coltype;
} acol_t;
typedef struct line {
char *val[TELNET_MAXCOL_NUM];
} aline_t;
typedef struct webdatadef {
char tblname[TELNET_HELPSTR_SIZE];
int numlines;
int numcols;
acol_t columns[TELNET_MAXCOL_NUM];
aline_t lines[TELNET_MAXLINE_NUM];
} webdatadef_t;
/*----------------------------------------------------------------------------*/
/* structure to be used when adding a module to the telnet server */
/* This is the second parameter of the add_telnetcmd function, which can be used */
/* to add a set of new command to the telnet server shell */
typedef void(*telnet_printfunc_t)(const char* format, ...);
typedef int(*cmdfunc_t)(char*, int, telnet_printfunc_t prnt);
typedef int(*webfunc_t)(char *cmdbuff, int debug, telnet_printfunc_t prnt, ... );
typedef int(*webfunc_getdata_t)(char *cmdbuff, int debug, void *data,telnet_printfunc_t prnt);
typedef int(*qcmdfunc_t)(char*, int, telnet_printfunc_t prnt,void *arg);
#define TELNETSRV_CMDFLAG_PUSHINTPOOLQ (1<<0) // ask the telnet server to push the command in a thread pool queue
#define TELNETSRV_CMDFLAG_PUSHINTPOOLQ (1<<0) // ask the telnet server to push the command in a thread pool queue
#define TELNETSRV_CMDFLAG_GETWEBDATA (1<<1) // When called from web server, use the getdata variant of the function
#define TELNETSRV_CMDFLAG_TELNETONLY (1<<2) // Command only for telnet client connections
#define TELNETSRV_CMDFLAG_WEBSRVONLY (1<<3) // Command only for web server connections
#define TELNETSRV_CMDFLAG_CONFEXEC (1<<4) // Ask for confirm before exec
#define TELNETSRV_CMDFLAG_GETWEBTBLDATA (1<<8) // When called from web server, use the get table data variant of the function
#define TELNETSRV_CMDFLAG_PRINTWEBTBLDATA (1<<9) // websrv Print as a single column table
#define TELNETSRV_CMDFLAG_NEEDPARAM (1<<10) // websrv: The command needs a parameter
#define TELNETSRV_CMDFLAG_WEBSRV_SETRETURNTBL (1<<11) // websrv: set callback returns a new table
#define TELNETSRV_CMDFLAG_AUTOUPDATE (1<<12) // command can be re-submitted automatically for result update
typedef struct cmddef {
char cmdname[TELNET_CMD_MAXSIZE];
char helpstr[TELNET_HELPSTR_SIZE];
cmdfunc_t cmdfunc;
cmdfunc_t cmdfunc;
union {
webfunc_t webfunc;
webfunc_getdata_t webfunc_getdata;
};
unsigned int cmdflags;
void *qptr;
} telnetshell_cmddef_t;
@@ -78,6 +114,8 @@ typedef struct telnetsrv_qmsg {
/*structure to be used when adding a module to the telnet server */
/* This is the first parameter of the add_telnetcmd function, which can be used */
/* to add a set of new variables which can be got/set from the telnet server shell */
/* var type: bits 0-3, type value (1 to 15)
* type modifier, bits 4-31 */
#define TELNET_VARTYPE_INT32 1
#define TELNET_VARTYPE_INT16 2
#define TELNET_VARTYPE_INT64 3
@@ -85,10 +123,18 @@ typedef struct telnetsrv_qmsg {
#define TELNET_VARTYPE_DOUBLE 5
#define TELNET_VARTYPE_INT8 6
#define TELNET_VARTYPE_UINT 7
#define TELNET_CHECKVAL_RDONLY 16
#define TELNET_CHECKVAL_BOOL 32
#define TELNET_VAR_NEEDFREE 64
#define TELNET_CHECKVAL_LOGLVL 128
#define TELNET_CHECKVAL_SIMALGO 256
typedef struct variabledef {
char varname[TELNET_CMD_MAXSIZE];
char vartype;
char checkval;
void *varvalptr;
} telnetshell_vardef_t;
@@ -113,6 +159,7 @@ typedef struct {
int priority; // server running priority
char *histfile; // command history
int histsize; // command history length
char *logfile; // filename to use when redirecting output to file
int new_socket; // socket of the client connection
int logfilefd; // file id of the log file when log output is redirected to a file
int saved_stdout; // file id of the previous stdout, used to be able to restore original stdout
@@ -145,14 +192,25 @@ VT escape sequence definition, for smarter display....
#define STDFMT "\x1b[0m"
/*---------------------------------------------------------------------------------------------*/
#define TELNET_ADDCMD_FNAME "add_telnetcmd"
#define NICE_MAX 19
#define NICE_MIN -20
#define TELNET_ADDCMD_FNAME "add_telnetcmd"
#define TELNET_POLLCMDQ_FNAME "poll_telnetcmdq"
#define TELNET_PUSHCMD_FNAME "telnet_pushcmd"
typedef int(*add_telnetcmd_func_t)(char *, telnetshell_vardef_t *, telnetshell_cmddef_t *);
typedef void(*poll_telnetcmdq_func_t)(void *qid,void *arg);
typedef void(*push_telnetcmd_func_t)(telnetshell_cmddef_t *cmd, char *cmdbuff, telnet_printfunc_t prnt);
#ifdef TELNETSERVERCODE
int add_telnetcmd(char *modulename, telnetshell_vardef_t *var, telnetshell_cmddef_t *cmd);
void set_sched(pthread_t tid, int pid,int priority);
void set_affinity(pthread_t tid, int pid, int coreid);
extern int get_phybsize(void);
#endif
#ifdef WEBSERVERCODE
extern void telnet_pushcmd(telnetshell_cmddef_t *cmd, char *cmdbuff, telnet_printfunc_t prnt);
extern telnetsrv_params_t *get_telnetsrv_params(void);
extern char *telnet_getvarvalue(telnetshell_vardef_t *var, int varindex);
extern int telnet_setvarvalue(telnetshell_vardef_t *var,char *strval, telnet_printfunc_t prnt ) ;
extern void telnetsrv_freetbldata(webdatadef_t *wdata);
#endif
#endif

View File

@@ -56,7 +56,6 @@ void measurcmd_display_macstats(telnet_printfunc_t prnt);
void measurcmd_display_macstats_ue(telnet_printfunc_t prnt);
void measurcmd_display_rlcstats(telnet_printfunc_t prnt);
void measurcmd_display_phycpu(telnet_printfunc_t prnt);
void measurcmd_display_phyta(telnet_printfunc_t prnt);
void measurcmd_display_maccpu(telnet_printfunc_t prnt);
void measurcmd_display_pdcpcpu(telnet_printfunc_t prnt);
@@ -65,7 +64,6 @@ static telnet_measurgroupdef_t nrUEmeasurgroups[] = {
// {"ue", GROUP_LTESTATS,0, measurcmd_display_macstats, {NULL}},
// {"rlc", GROUP_LTESTATS,0, measurcmd_display_rlcstats, {NULL}},
{"phycpu",GROUP_CPUSTATS,0, measurcmd_display_phycpu, {NULL}},
{"phyta", GROUP_CPUSTATS, 0, measurcmd_display_phyta, {NULL}},
// {"maccpu",GROUP_CPUSTATS,0, measurcmd_display_maccpu, {NULL}},
// {"pdcpcpu",GROUP_CPUSTATS,0, measurcmd_display_pdcpcpu, {NULL}},
};
@@ -91,18 +89,6 @@ void measurcmd_display_phycpu(telnet_printfunc_t prnt) {
PRINT_CPUMEAS_STATE,HDR);
measurcmd_display_cpumeasures(prnt, cpumeasur, sizeof(cpumeasur)/sizeof(telnet_cpumeasurdef_t));
}
void measurcmd_display_phyta(telnet_printfunc_t prnt)
{
PHY_VARS_NR_UE *UE = PHY_vars_UE_g[0][0];
prnt("%s PHY TA stats\n", HDR);
prnt("N_TA_offset %d\n", UE->N_TA_offset);
for (int i = 0; i < UE->n_connected_gNB; ++i) {
NR_UL_TIME_ALIGNMENT_t *ta = &UE->ul_time_alignment[i];
prnt("gNB %d TA command %d TA total %d TAG ID %d\n", i, ta->ta_command, ta->ta_total, ta->tag_id);
}
prnt("timing_advance %d (samples)\n", UE->timing_advance);
}
/*
void measurcmd_display_maccpu(telnet_printfunc_t prnt) {
eNB_MAC_INST *macvars = RC.mac[eNB_id];

View File

@@ -30,6 +30,6 @@ endforeach()
install(TARGETS telnetsrv DESTINATION bin)
if (EXISTS "${OPENAIR_BUILD_DIR}/ran_build/build" AND IS_DIRECTORY "${OPENAIR_BUILD_DIR}/ran_build/build")
install(TARGETS telnetsrv DESTINATION ${OPENAIR_BUILD_DIR}/ran_build/build)
endif (EXISTS "${OPENAIR_BUILD_DIR}/ran_build/build" AND IS_DIRECTORY "${OPENAIR_BUILD_DIR}/ran_build/build")
if (EXISTS "${OPENAIR_CMAKE}/ran_build/build" AND IS_DIRECTORY "${OPENAIR_CMAKE}/ran_build/build")
install(TARGETS telnetsrv DESTINATION ${OPENAIR_CMAKE}/ran_build/build)
endif (EXISTS "${OPENAIR_CMAKE}/ran_build/build" AND IS_DIRECTORY "${OPENAIR_CMAKE}/ran_build/build")

View File

@@ -110,9 +110,8 @@ int dump_phyvars(char *buf, int debug, telnet_printfunc_t prnt) {
telnetshell_cmddef_t phy_cmdarray[] = {
{"disp","[phycnt,uedump,uestat UE<x>]", dump_phyvars},
{"","",NULL},
{"disp","[phycnt,uedump,uestat UE<x>]", dump_phyvars,{NULL},0,NULL},
{"","",NULL,{NULL},0,NULL},
};

View File

@@ -42,24 +42,29 @@
int loader_show_cmd(char *buff, int debug, telnet_printfunc_t prnt);
telnetshell_cmddef_t loader_cmdarray[] = {
{"show","[params,modules]",loader_show_cmd},
{"","",NULL},
{"show","[params,modules]",loader_show_cmd,{(webfunc_t)loader_show_cmd},0,NULL},
{"","",NULL,{NULL},0,NULL},
};
/*-------------------------------------------------------------------------------------*/
int loader_show_cmd(char *buff, int debug, telnet_printfunc_t prnt)
{
if (buff == NULL) {
prnt("ERROR wrong loader SHOW command...\n");
return 0;
}
if (debug > 0)
prnt( "loader_show_cmd received %s\n",buff);
if (strcasestr(buff,"params") != NULL) {
prnt( "loader parameters:\n");
prnt( " Main executable build version: \"%s\"\n", loader_data.mainexec_buildversion);
prnt( " Default shared lib path: \"%s\"\n", loader_data.shlibpath);
prnt( " Max number of shared lib : %i\n", loader_data.maxshlibs);
}
else if (strcasestr(buff,"modules") != NULL) {
else if (strcasestr(buff,"modules") != NULL || buff[0]==0 || strcasestr(buff,"show") != NULL) {
prnt( "%i shared lib have been dynamicaly loaded by the oai loader\n", loader_data.numshlibs);
for (int i=0 ; i<loader_data.numshlibs ; i++) {
prnt( " Module %i: %s\n", i,loader_data.shlibs[i].name);

View File

@@ -39,11 +39,11 @@
telnetshell_vardef_t loader_globalvardef[] = {
{"mainversion",TELNET_VARTYPE_STRING,&(loader_data.mainexec_buildversion)},
{"defpath",TELNET_VARTYPE_STRING,&(loader_data.shlibpath)},
{"maxshlibs",TELNET_VARTYPE_INT32,&(loader_data.maxshlibs)},
{"numshlibs",TELNET_VARTYPE_INT32,&(loader_data.numshlibs)},
{"",0,NULL}
{"mainversion",TELNET_VARTYPE_STRING,TELNET_CHECKVAL_RDONLY, &(loader_data.mainexec_buildversion)},
{"defpath",TELNET_VARTYPE_STRING,TELNET_CHECKVAL_RDONLY,&(loader_data.shlibpath)},
{"maxshlibs",TELNET_VARTYPE_INT32,TELNET_CHECKVAL_RDONLY,&(loader_data.maxshlibs)},
{"numshlibs",TELNET_VARTYPE_INT32,TELNET_CHECKVAL_RDONLY,&(loader_data.numshlibs)},
{"",0,0,NULL}
};
telnetshell_vardef_t *loader_modulesvardef;

View File

@@ -92,7 +92,7 @@ telnetshell_cmddef_t measur_cmdarray[] = {
};
telnetshell_vardef_t measur_vardef[] = {
{"",0,NULL}
{"",0,0,NULL}
};
/* function to be implemented in any telnetsrv_xxx_measurements.c sources
to allow common measurment code to access measurments data */

View File

@@ -53,7 +53,7 @@ telnetshell_vardef_t phy_vardef[] = {
//{"txshift",TELNET_VARTYPE_INT32,NULL},
//{"rachemin",TELNET_VARTYPE_INT32,NULL},
//{"rachdmax",TELNET_VARTYPE_INT32,NULL},
{"",0,NULL}
{"",0,0,NULL}
};
#else

View File

@@ -57,89 +57,121 @@
#include "openair1/PHY/phy_extern.h"
#include "telnetsrv_proccmd.h"
void decode_procstat(char *record, int debug, telnet_printfunc_t prnt)
void decode_procstat(char *record, int debug, telnet_printfunc_t prnt,webdatadef_t *tdata)
{
char prntline[160];
char *procfile_fiels;
char *procfile_fields;
char *strtokptr;
char *lptr;
int fieldcnt;
char toksep[2];
fieldcnt=0;
procfile_fiels =strtok_r(record," ",&strtokptr);
procfile_fields =strtok_r(record," ",&strtokptr);
lptr= prntline;
/*http://man7.org/linux/man-pages/man5/proc.5.html gives the structure of the stat file */
while( procfile_fiels != NULL && fieldcnt < 42) {
int priority=0;
int nice=0;
while( procfile_fields != NULL && fieldcnt < 42) {
long int policy;
if (strlen(procfile_fiels) == 0)
if (strlen(procfile_fields) == 0)
continue;
fieldcnt++;
sprintf(toksep," ");
switch(fieldcnt) {
case 1: /* id */
lptr+=sprintf(lptr,"%9.9s ",procfile_fiels);
sprintf(toksep,")");
if (tdata != NULL) {
tdata->lines[tdata->numlines].val[0]=strdup(procfile_fields);
}
lptr+=sprintf(lptr,"%9.9s ",procfile_fields);
sprintf(toksep,")");
break;
case 2: /* name */
lptr+=sprintf(lptr,"%20.20s ",procfile_fiels+1);
if (tdata != NULL) {
tdata->lines[tdata->numlines].val[1]=strdup(procfile_fields);
}
lptr+=sprintf(lptr,"%20.20s ",procfile_fields+1);
break;
case 3: //thread state
lptr+=sprintf(lptr," %c ",procfile_fiels[0]);
lptr+=sprintf(lptr," %c ",procfile_fields[0]);
break;
case 14: //time in user mode
case 15: //time in kernel mode
lptr+=sprintf(lptr,"%9.9s ",procfile_fiels);
lptr+=sprintf(lptr,"%9.9s ",procfile_fields);
break;
case 18: //priority
case 19: //nice
lptr+=sprintf(lptr,"%3.3s ",procfile_fiels);
case 18: //priority column index 2 in tdata, -2 to -100 (1, min to 99, highest prio)
priority=strtol(procfile_fields,NULL,0);
case 19: //nice column index 3 in tdata 0 to 39 (-20, highest prio, to 19)
if (tdata != NULL) {
tdata->lines[tdata->numlines].val[fieldcnt-16]=strdup(procfile_fields);
}
lptr+=sprintf(lptr,"%3.3s ",procfile_fields);
nice=strtol(procfile_fields,NULL,0);
break;
case 23: //vsize
lptr+=sprintf(lptr,"%9.9s ",procfile_fiels);
lptr+=sprintf(lptr,"%9.9s ",procfile_fields);
break;
case 39: //processor
lptr+=sprintf(lptr," %2.2s ",procfile_fiels);
case 39: //processor
if (tdata != NULL) {
tdata->lines[tdata->numlines].val[4]=strdup(procfile_fields);
}
lptr+=sprintf(lptr," %2.2s ",procfile_fields);
break;
case 41: //policy
lptr+=sprintf(lptr,"%3.3s ",procfile_fiels);
policy=strtol(procfile_fiels,NULL,0);
lptr+=sprintf(lptr,"%3.3s ",procfile_fields);
policy=strtol(procfile_fields,NULL,0);
char strschedp[64];
switch(policy) {
case SCHED_FIFO:
lptr+=sprintf(lptr,"%s ","rt: fifo");
snprintf(strschedp,sizeof(strschedp),"%s ","rt:fifo");
priority= priority+1; //in /proc file system priority 1 to 99 mapped to -2 to -100
break;
case SCHED_OTHER:
lptr+=sprintf(lptr,"%s ","other");
snprintf(strschedp,sizeof(strschedp),"%s ","other");
priority=nice-NICE_MIN; // linux nice is -20 to 19
break;
case SCHED_IDLE:
lptr+=sprintf(lptr,"%s ","idle");
snprintf(strschedp,sizeof(strschedp),"%s ","idle");
priority=2*(NICE_MAX-NICE_MIN+1);
break;
case SCHED_BATCH:
lptr+=sprintf(lptr,"%s ","batch");
snprintf(strschedp,sizeof(strschedp),"%s ","batch");
priority=(NICE_MAX-NICE_MIN+1)+nice-NICE_MIN;
break;
case SCHED_RR:
lptr+=sprintf(lptr,"%s ","rt: rr");
snprintf(strschedp,sizeof(strschedp),"%s ","rt:rr");
priority= priority-99 ;
break;
#ifdef SCHED_DEADLINE
case SCHED_DEADLINE:
lptr+=sprintf(lptr,"%s ","rt: deadline");
snprintf(strschedp,sizeof(strschedp),"%s ","rt:deadline");
break;
#endif
default:
lptr+=sprintf(lptr,"%s ","????");
snprintf(strschedp,sizeof(strschedp),"%s ","????");
break;
}
lptr+=sprintf(lptr,"%s ",strschedp);
if (tdata != NULL) {
tdata->lines[tdata->numlines].val[5]=strdup(strschedp);
tdata->lines[tdata->numlines].val[6]=malloc(10);
snprintf(tdata->lines[tdata->numlines].val[6],9,"%i",priority);
}
break;
default:
break;
}/* switch on fieldcnr */
procfile_fiels =strtok_r(NULL,toksep,&strtokptr);
procfile_fields =strtok_r(NULL,toksep,&strtokptr);
} /* while on proc_fields != NULL */
prnt("%s\n",prntline);
if (tdata != NULL) {
tdata->numlines++;
}
} /*decode_procstat */
void read_statfile(char *fname,int debug, telnet_printfunc_t prnt)
void read_statfile(char *fname,int debug, telnet_printfunc_t prnt, webdatadef_t *tdata)
{
FILE *procfile;
char arecord[1024];
@@ -157,21 +189,55 @@ char arecord[1024];
return;
}
fclose(procfile);
decode_procstat(arecord, debug, prnt);
decode_procstat(arecord, debug, prnt,tdata);
}
void print_threads(char *buf, int debug, telnet_printfunc_t prnt)
int nullprnt(char *fmt,...) {
return 0;
}
void proccmd_get_threaddata(char *buf, int debug, telnet_printfunc_t fprnt,webdatadef_t *tdata)
{
char aname[256];
DIR *proc_dir;
struct dirent *entry;
telnet_printfunc_t prnt = (fprnt != NULL)?fprnt:(telnet_printfunc_t)nullprnt;
if (tdata != NULL) {
tdata->numcols=7;
snprintf(tdata->columns[0].coltitle,sizeof(tdata->columns[0].coltitle),"thread id");
tdata->columns[0].coltype=TELNET_VARTYPE_STRING|TELNET_CHECKVAL_RDONLY|TELNET_VAR_NEEDFREE;
snprintf(tdata->columns[1].coltitle,sizeof(tdata->columns[1].coltitle),"thread name");
tdata->columns[1].coltype=TELNET_VARTYPE_STRING|TELNET_CHECKVAL_RDONLY|TELNET_VAR_NEEDFREE;
snprintf(tdata->columns[2].coltitle,sizeof(tdata->columns[2].coltitle),"priority");
tdata->columns[2].coltype=TELNET_VARTYPE_STRING|TELNET_CHECKVAL_RDONLY|TELNET_VAR_NEEDFREE;
snprintf(tdata->columns[3].coltitle,sizeof(tdata->columns[3].coltitle),"nice");
tdata->columns[3].coltype=TELNET_VARTYPE_STRING|TELNET_CHECKVAL_RDONLY|TELNET_VAR_NEEDFREE;
snprintf(tdata->columns[4].coltitle,sizeof(tdata->columns[4].coltitle),"core");
tdata->columns[4].coltype=TELNET_VARTYPE_STRING|TELNET_VAR_NEEDFREE;
snprintf(tdata->columns[5].coltitle,sizeof(tdata->columns[5].coltitle),"sched policy");
tdata->columns[5].coltype=TELNET_VARTYPE_STRING|TELNET_CHECKVAL_RDONLY|TELNET_VAR_NEEDFREE;
snprintf(tdata->columns[5].coltitle,sizeof(tdata->columns[5].coltitle),"sched policy");
tdata->columns[6].coltype=TELNET_VARTYPE_STRING|TELNET_VAR_NEEDFREE;
snprintf(tdata->columns[6].coltitle,sizeof(tdata->columns[6].coltitle),"oai priority");
tdata->numlines=0;
}
unsigned int eax=11,ebx=0,ecx=1,edx=0;
asm volatile("cpuid"
: "=a" (eax),
"=b" (ebx),
"=c" (ecx),
"=d" (edx)
: "0" (eax), "2" (ecx)
: );
prnt("System has %d cores %d threads %d Actual threads",eax,ebx,edx);
prnt(" id name state USRmod KRNmod prio nice vsize proc pol \n\n");
prnt("\n id name state USRmod KRNmod prio nice vsize proc pol \n\n");
snprintf(aname, sizeof(aname), "/proc/%d/stat", getpid());
read_statfile(aname,debug,prnt);
read_statfile(aname,debug,prnt,NULL);
prnt("\n");
snprintf(aname, sizeof(aname), "/proc/%d/task", getpid());
proc_dir = opendir(aname);
@@ -181,20 +247,150 @@ struct dirent *entry;
return;
}
while ((entry = readdir(proc_dir)) != NULL)
{
if(entry->d_name[0] == '.')
continue;
snprintf(aname, sizeof(aname), "/proc/%d/task/%.*s/stat", getpid(),(int)(sizeof(aname)-24),entry->d_name);
read_statfile(aname,debug,prnt);
} /* while entry != NULL */
while ((entry = readdir(proc_dir)) != NULL){
if(entry->d_name[0] != '.') {
snprintf(aname, sizeof(aname), "/proc/%d/task/%.*s/stat", getpid(),(int)(sizeof(aname)-24),entry->d_name);
read_statfile(aname,debug,prnt,tdata);
}
} /* while entry != NULL */
closedir(proc_dir);
} /* print_threads */
void print_threads(char *buf, int debug, telnet_printfunc_t prnt) {
proccmd_get_threaddata(buf,debug,prnt,NULL);
}
int proccmd_websrv_getdata(char *cmdbuff, int debug, void *data, telnet_printfunc_t prnt) {
webdatadef_t *logsdata = ( webdatadef_t *) data;
if (strncmp(cmdbuff,"set",3) == 0) {
telnet_printfunc_t printfunc = (prnt != NULL)?prnt:( telnet_printfunc_t)printf;
if (strcasestr(cmdbuff,"loglvl") != NULL) {
int level=map_str_to_int(log_level_names,logsdata->lines[0].val[1]);
int enabled=(strcmp(logsdata->lines[0].val[2],"true")==0)?1:0;
int loginfile=(strcmp(logsdata->lines[0].val[3],"true")==0)?1:0;
set_log(logsdata->numlines, level);
if (enabled==0)
set_log(logsdata->numlines, OAILOG_DISABLE);
if ( loginfile == 1 ) {
set_component_filelog(logsdata->numlines);
} else {
close_component_filelog(logsdata->numlines);
}
printfunc("%s log level %s is %s, output to %s\n",logsdata->lines[0].val[0],
logsdata->lines[0].val[1], enabled?"enabled":"disabled",loginfile?g_log->log_component[logsdata->numlines].filelog_name :"stdout");
}
if (strcasestr(cmdbuff,"logopt") != NULL) {
int optbit=map_str_to_int(log_options,logsdata->lines[0].val[0]);
if (optbit < 0) {
printfunc("option %s unknown\n",logsdata->lines[0].val[0]);
} else {
if(strcmp(logsdata->lines[0].val[1],"true")==0) {
SET_LOG_OPTION(optbit);
} else {
CLEAR_LOG_OPTION(optbit);
}
printfunc("%s log option %s\n",logsdata->lines[0].val[0],(strcmp(logsdata->lines[0].val[1],"true")==0)?"enabled":"disabled");
}
}
if (strcasestr(cmdbuff,"dbgopt") != NULL) {
int optbit=map_str_to_int(log_maskmap,logsdata->lines[0].val[0]);
if (optbit < 0) {
printfunc("debug option %s unknown\n",logsdata->lines[0].val[0]);
} else {
if(strcmp(logsdata->lines[0].val[1],"true")==0)
SET_LOG_DEBUG(optbit);
else
CLEAR_LOG_DEBUG(optbit);
if(strcmp(logsdata->lines[0].val[2],"true")==0)
SET_LOG_DUMP(optbit);
else
CLEAR_LOG_DUMP(optbit);
printfunc("%s debug %s dump %s\n",logsdata->lines[0].val[0],
(strcmp(logsdata->lines[0].val[1],"true")==0)?"enabled":"disabled",
(strcmp(logsdata->lines[0].val[2],"true")==0)?"enabled":"disabled");
}
}
if (strcasestr(cmdbuff,"threadsched") != NULL) {
unsigned int tid=strtoll(logsdata->lines[0].val[0],NULL,0);
unsigned int core=strtoll(logsdata->lines[0].val[4],NULL,0);
int priority=strtoll(logsdata->lines[0].val[6],NULL,0);
printfunc("Thread %s id %u set affinity to core %u\n",logsdata->lines[0].val[0],tid,core);
set_affinity( 0,(pid_t)tid, core) ;
set_sched(0, (pid_t)tid, priority) ;
}
} else { /* end of set, => show */
if (strcasestr(cmdbuff,"loglvl") != NULL) {
logsdata->numcols=4;
logsdata->numlines=0;
snprintf(logsdata->columns[0].coltitle,TELNET_CMD_MAXSIZE,"component");
logsdata->columns[0].coltype = TELNET_VARTYPE_STRING | TELNET_CHECKVAL_RDONLY;
snprintf(logsdata->columns[1].coltitle,TELNET_CMD_MAXSIZE,"level");
logsdata->columns[1].coltype = TELNET_VARTYPE_STRING|TELNET_CHECKVAL_LOGLVL;
snprintf(logsdata->columns[2].coltitle,TELNET_CMD_MAXSIZE,"enabled");
logsdata->columns[2].coltype = TELNET_CHECKVAL_BOOL;
snprintf(logsdata->columns[3].coltitle,TELNET_CMD_MAXSIZE,"in file");
logsdata->columns[3].coltype = TELNET_CHECKVAL_BOOL;
for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
if (g_log->log_component[i].name != NULL) {
logsdata->numlines++;
logsdata->lines[i].val[0]= (char *)(g_log->log_component[i].name);
logsdata->lines[i].val[1]=map_int_to_str(log_level_names,(g_log->log_component[i].level>=0)?g_log->log_component[i].level:g_log->log_component[i].savedlevel);
logsdata->lines[i].val[2]=(g_log->log_component[i].level>=0)?"true":"false";
logsdata->lines[i].val[3]=(g_log->log_component[i].filelog>0)?"true":"false";
}
}
}
if (strcasestr(cmdbuff,"dbgopt") != NULL) {
webdatadef_t *logsdata = ( webdatadef_t *) data;
logsdata->numcols=3;
logsdata->numlines=0;
snprintf(logsdata->columns[0].coltitle,TELNET_CMD_MAXSIZE,"module");
logsdata->columns[0].coltype = TELNET_VARTYPE_STRING | TELNET_CHECKVAL_RDONLY;
snprintf(logsdata->columns[1].coltitle,TELNET_CMD_MAXSIZE,"debug");
logsdata->columns[1].coltype = TELNET_CHECKVAL_BOOL;
snprintf(logsdata->columns[2].coltitle,TELNET_CMD_MAXSIZE,"dump");
logsdata->columns[2].coltype = TELNET_CHECKVAL_BOOL;
for (int i=0; log_maskmap[i].name != NULL ; i++) {
logsdata->numlines++;
logsdata->lines[i].val[0]= log_maskmap[i].name;
logsdata->lines[i].val[1]= (g_log->debug_mask & log_maskmap[i].value)?"true":"false";
logsdata->lines[i].val[2]=(g_log->dump_mask & log_maskmap[i].value)?"true":"false";
}
}
if (strcasestr(cmdbuff,"logopt") != NULL) {
webdatadef_t *logsdata = ( webdatadef_t *) data;
logsdata->numcols=2;
logsdata->numlines=0;
snprintf(logsdata->columns[0].coltitle,TELNET_CMD_MAXSIZE,"option");
logsdata->columns[0].coltype = TELNET_VARTYPE_STRING | TELNET_CHECKVAL_RDONLY;
snprintf(logsdata->columns[1].coltitle,TELNET_CMD_MAXSIZE,"enabled");
logsdata->columns[1].coltype = TELNET_CHECKVAL_BOOL;
for (int i=0; log_options[i].name != NULL; i++) {
logsdata->numlines++;
logsdata->lines[i].val[0]=log_options[i].name;
logsdata->lines[i].val[1]=(g_log->flag & log_options[i].value)?"true":"false";
}
}
if (strcasestr(cmdbuff,"threadsched") != NULL) {
proccmd_get_threaddata(cmdbuff, debug, prnt, ( webdatadef_t *) data);
}
} // show
return 0;
}
int proccmd_show(char *buf, int debug, telnet_printfunc_t prnt)
{
if (buf == NULL) {
prnt("ERROR wrong softmodem SHOW command...\n");
return 0;
}
if (debug > 0)
prnt(" proccmd_show received %s\n",buf);
if (strcasestr(buf,"thread") != NULL) {
@@ -270,6 +466,10 @@ int bv1,bv2;
int res;
char sv1[64];
if (buf == NULL) {
prnt("ERROR wrong thread command...\n");
return 0;
}
bv1=0;
bv2=0;
sv1[0]=0;
@@ -284,7 +484,7 @@ char sv1[64];
prnt(" proccmd_thread: %i params = %i,%s,%i\n",res,bv1,sv1,bv2);
if(res != 3)
{
prnt("softmodem thread needs 3 params, %i received\n",res);
print_threads(buf, debug, prnt);
return 0;
}
@@ -307,11 +507,20 @@ int proccmd_exit(char *buf, int debug, telnet_printfunc_t prnt)
{
if (debug > 0)
prnt("process module received %s\n",buf);
end_configmodule();
exit_fun("telnet server received exit command\n");
return 0;
}
int proccmd_restart(char *buf, int debug, telnet_printfunc_t prnt)
{
if (debug > 0)
prnt("process module received %s\n",buf);
end_configmodule();
configmodule_interface_t *cfg = config_get_if();
execvpe(cfg->argv[0],cfg->argv ,environ);
return 0;
}
int proccmd_log(char *buf, int debug, telnet_printfunc_t prnt)
{
@@ -396,7 +605,7 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
SET_LOG_DUMP(optbit);
else
CLEAR_LOG_DUMP(optbit);
proccmd_show("dbgopt",debug,prnt);
proccmd_show("dump",debug,prnt);
}
}
if (logparam != NULL) free(logparam);
@@ -435,7 +644,7 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
} else {
prnt("%s%s unknown log sub command \n",logparam, tmpstr);
}
} else {
} else {level=map_str_to_int(log_level_names,tmpstr);
prnt("%s unknown log sub command \n",logsubcmd);
}
if (logparam != NULL) free(logparam);
@@ -459,6 +668,7 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
return 0;
}
/*-------------------------------------------------------------------------------------*/
void add_softmodem_cmds(void)

View File

@@ -44,9 +44,11 @@
extern int proccmd_show(char *buf, int debug, telnet_printfunc_t prnt);
extern int proccmd_thread(char *buf, int debug, telnet_printfunc_t prnt);
extern int proccmd_exit(char *buf, int debug, telnet_printfunc_t prnt);
extern int proccmd_restart(char *buf, int debug, telnet_printfunc_t prnt);
extern int proccmd_log(char *buf, int debug, telnet_printfunc_t prnt);
extern int proccmd_websrv_getdata(char *cmdbuff, int debug, void *data,telnet_printfunc_t prnt);
telnetshell_vardef_t proc_vardef[] = {
{"",0,NULL}
{"",0,0,NULL}
};
#define PROCCMD_LOG_HELP_STRING " log sub commands: \n\
show: display current log configuration \n\
@@ -65,18 +67,26 @@ telnetshell_vardef_t proc_vardef[] = {
#define PROCCMD_THREAD_HELP_STRING " thread sub commands: \n\
<thread id> aff <core> : set affinity of thread <thread id> to core <core> \n\
<thread id> prio <prio> : set scheduling parameters for thread <thread id> \n\
if prio < -20: linux scheduling policy set to FIFO, \n\
with priority = -20 - prio \n\
if prio > 19: linux scheduling policy set to OTHER, \n\
with priority (nice value) = prio \n\
-100 < prio < 0: linux scheduling policy set to FIFO, priority -prio, \n\
-200 < prio < -100: linux scheduling policy set to RR, priority -(prio+100), \n\
0 <= prio < 40: linux scheduling policy set to NORMAL, nice value prio-20 \n\
40 <= prio < 80: linux scheduling policy set to BATCH, nice value prio-60 \n\
prio >=80: linux scheduling policy set to IDLE \n\
use \"softmodem show thread\" to get <thread id> \n"
telnetshell_cmddef_t proc_cmdarray[] = {
{"show","loglvl|thread|config", proccmd_show},
{"log","(enter help for details)", proccmd_log},
{"thread","(enter help for details)", proccmd_thread},
{"exit","", proccmd_exit},
{"show","loglvl|thread|config", proccmd_show,{(webfunc_t)proccmd_websrv_getdata},TELNETSRV_CMDFLAG_TELNETONLY,NULL},
{"log","(enter help for details)", proccmd_log, {NULL},TELNETSRV_CMDFLAG_TELNETONLY,NULL},
{"show loglvl","", proccmd_log,{(webfunc_t)proccmd_websrv_getdata}, TELNETSRV_CMDFLAG_WEBSRVONLY|TELNETSRV_CMDFLAG_GETWEBTBLDATA,NULL},
{"show logopt","", proccmd_log,{(webfunc_t)proccmd_websrv_getdata}, TELNETSRV_CMDFLAG_WEBSRVONLY|TELNETSRV_CMDFLAG_GETWEBTBLDATA,NULL},
{"show dbgopt","", proccmd_log,{(webfunc_t)proccmd_websrv_getdata}, TELNETSRV_CMDFLAG_WEBSRVONLY|TELNETSRV_CMDFLAG_GETWEBTBLDATA,NULL},
{"show config","", proccmd_show,{(webfunc_t)proccmd_show}, TELNETSRV_CMDFLAG_WEBSRVONLY,NULL},
{"show thread","", proccmd_thread,{(webfunc_t)proccmd_show},TELNETSRV_CMDFLAG_WEBSRVONLY|TELNETSRV_CMDFLAG_AUTOUPDATE,NULL},
{"thread","(enter help for details)",proccmd_thread,{NULL},TELNETSRV_CMDFLAG_TELNETONLY,NULL},
{"show threadsched","",proccmd_show,{(webfunc_t)proccmd_websrv_getdata}, TELNETSRV_CMDFLAG_WEBSRVONLY|TELNETSRV_CMDFLAG_GETWEBTBLDATA,NULL},
{"exit","", proccmd_exit,{NULL},TELNETSRV_CMDFLAG_CONFEXEC,NULL},
{"restart","",proccmd_restart,{NULL},TELNETSRV_CMDFLAG_CONFEXEC,NULL},
{"","",NULL},
};
#else

View File

@@ -80,7 +80,7 @@ static inline notifiedFIFO_elt_t *newNotifiedFIFO_elt(int size,
notifiedFIFO_t *reponseFifo,
void (*processingFunc)(void *)) {
notifiedFIFO_elt_t *ret;
AssertFatal( NULL != (ret=(notifiedFIFO_elt_t *) malloc(sizeof(notifiedFIFO_elt_t)+size+32)), "");
AssertFatal( NULL != (ret=(notifiedFIFO_elt_t *) calloc(1, sizeof(notifiedFIFO_elt_t)+size+32)), "");
ret->next=NULL;
ret->key=key;
ret->reponseFifo=reponseFifo;

View File

@@ -111,13 +111,15 @@ void print_meas(time_stats_t *ts,
}
}
int print_meas_log(time_stats_t *ts,
const char *name,
time_stats_t *total_exec_time,
time_stats_t *sf_exec_time,
char *output)
size_t print_meas_log(time_stats_t *ts,
const char *name,
time_stats_t *total_exec_time,
time_stats_t *sf_exec_time,
char *output,
size_t outputlen)
{
int stroff = 0;
const char *begin = output;
const char *end = output + outputlen;
static int first_time = 0;
static double cpu_freq_GHz = 0.0;
@@ -128,30 +130,49 @@ int print_meas_log(time_stats_t *ts,
first_time=1;
if ((total_exec_time == NULL) || (sf_exec_time== NULL))
stroff += sprintf(output, "%25s %25s %25s %25s %25s %6f\n","Name","Total","Per Trials", "Num Trials","CPU_F_GHz", cpu_freq_GHz);
output += snprintf(output,
end - output,
"%25s %25s %25s %25s %25s %6f\n",
"Name",
"Total",
"Per Trials",
"Num Trials",
"CPU_F_GHz",
cpu_freq_GHz);
else
stroff += sprintf(output+stroff, "%25s %25s %25s %20s %15s %6f\n","Name","Total","Average/Frame","Trials", "CPU_F_GHz", cpu_freq_GHz);
output += snprintf(output,
end - output,
"%25s %25s %25s %20s %15s %6f\n",
"Name",
"Total",
"Average/Frame",
"Trials",
"CPU_F_GHz",
cpu_freq_GHz);
}
if (ts->trials>0) {
//printf("%20s: total: %10.3f ms, average: %10.3f us (%10d trials)\n", name, ts->diff/cpu_freq_GHz/1000000.0, ts->diff/ts->trials/cpu_freq_GHz/1000.0, ts->trials);
if ((total_exec_time == NULL) || (sf_exec_time== NULL)) {
stroff += sprintf(output+stroff, "%25s: %15.3f us; %15d; %15.3f us;\n",
name,
(ts->diff/ts->trials/cpu_freq_GHz/1000.0),
ts->trials,
ts->max/cpu_freq_GHz/1000.0);
output += snprintf(output,
end - output,
"%25s: %15.3f us; %15d; %15.3f us;\n",
name,
ts->diff / ts->trials / cpu_freq_GHz / 1000.0,
ts->trials,
ts->max / cpu_freq_GHz / 1000.0);
} else {
stroff += sprintf(output+stroff, "%25s: %15.3f ms (%5.2f%%); %15.3f us (%5.2f%%); %15d;\n",
name,
(ts->diff/cpu_freq_GHz/1000000.0),
((ts->diff/cpu_freq_GHz/1000000.0)/(total_exec_time->diff/cpu_freq_GHz/1000000.0))*100, // percentage
(ts->diff/ts->trials/cpu_freq_GHz/1000.0),
((ts->diff/ts->trials/cpu_freq_GHz/1000.0)/(sf_exec_time->diff/sf_exec_time->trials/cpu_freq_GHz/1000.0))*100, // percentage
ts->trials);
output += snprintf(output,
end - output,
"%25s: %15.3f ms (%5.2f%%); %15.3f us (%5.2f%%); %15d;\n",
name,
ts->diff / cpu_freq_GHz / 1000000.0,
((ts->diff / cpu_freq_GHz / 1000000.0) / (total_exec_time->diff / cpu_freq_GHz / 1000000.0))*100, // percentage
ts->diff / ts->trials / cpu_freq_GHz / 1000.0,
((ts->diff / ts->trials / cpu_freq_GHz / 1000.0) / (sf_exec_time->diff / sf_exec_time->trials / cpu_freq_GHz / 1000.0)) * 100, // percentage
ts->trials);
}
}
return stroff;
return output - begin;
}
double get_time_meas_us(time_stats_t *ts)

View File

@@ -83,7 +83,12 @@ static inline void stop_meas(time_stats_t *ts) __attribute__((always_inline));
void print_meas_now(time_stats_t *ts, const char *name, FILE *file_name);
void print_meas(time_stats_t *ts, const char *name, time_stats_t *total_exec_time, time_stats_t *sf_exec_time);
int print_meas_log(time_stats_t *ts, const char *name, time_stats_t *total_exec_time, time_stats_t *sf_exec_time, char *output);
size_t print_meas_log(time_stats_t *ts,
const char *name,
time_stats_t *total_exec_time,
time_stats_t *sf_exec_time,
char *output,
size_t outputlen);
double get_time_meas_us(time_stats_t *ts);
double get_cpu_freq_GHz(void);

View File

@@ -0,0 +1,7 @@
The oai web server is an optional monitoring and debugging tool. It gives access to the same functionalities as the telnet server via a web interface
* [Using the web server](webserverusage.md)
* [enhancing the webserver](webserverdevcmd.md)
* [web server architecture ](webserverarch.md)
[oai Wikis home](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home)

View File

@@ -0,0 +1,31 @@
# telnet server principles
The oai telnet server is implemented in shared libraries to be loaded by the [oai shared library loader](loader). `libtelnetsrv.so ` contains the code common to all oai softmodem executables, where `libtelnetsrv_<app>.so` contains the code specific to the executable identified by `app`.
| `<app>` | executable |
| :-----: | :---------------: |
| enb | `lte-softmodem` |
| gnb | `nr-softmodem` |
| 4Gue | `lte-uesoftmodem` |
| 5Gue | `nr-uesoftmodem` |
The implementation includes a `telnetsrv_autoinit` function which is automatically called at load time, starts the telnet server and registers a first set of commands, which are delivered with the server (telnet, softmodem, loader). it also uses the `get_softmodem_function` call to retrieve the running executable id and possibly loads the corresponding `libtelnetsrv_<app>.so`library.
Currently the telnet server only supports one user connection. The same dedicated thread is used to wait for a user connection and process the input received from this connection.
The telnet server provides an API which can be used by any oai component to add new CLI commands to the server. A pre-defined command can be used to get or set a list of variables.
# telnet server source files
telnet server source files are located in [common/utils/telnetsrv](https://gitlab.eurecom.fr/oai/openairinterface5g/tree/develop/common/utils/telnetsrv)
1. [telnetsrv.c](https://gitlab.eurecom.fr/oai/openairinterface5g/tree/develop/common/utils/telnetsrv/telnetsrv.c) contains the telnet server implementation, including the implementation of the `telnet` CLI command. This implementation is compatible with all softmodem executables and is in charge of loading any additional `libtelnetsrv_<app> .so` containing code specific to the running executables.
1. [telnetsrv.h](https://gitlab.eurecom.fr/oai/openairinterface5g/tree/develop/common/utils/telnetsrv/telnetsrv.h) is the telnet server include file containing both private and public data type definitions. It also contains API prototypes for functions that are used to register a new command in the server.
1. `telnetsrv_<XXX\>.c`: implementation of \<XXX\> CLI command which are delivered with the telnet server and are common to all softmodem executables.
1. `telnetsrv_<XXX\>.h`: include file for the implementation of XXX CLI command. Usually included only in the corresponding `.c`file
1. `telnetsrv_<app>_<XXX>.c`: implementation of \<XXX\> CLI command specific to the executable identified by \<app\>.These sources are used to create `libtelnetsrv_<app>.so` at build time.
1. [telnetsrv_CMakeLists.txt](https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/common/utils/telnetsrv/telnetsrv_CMakeLists.txt): CMakelists file containing the cmake instructions to build the telnet server. this file is included in the [global oai CMakelists](https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/cmake_targets/CMakeLists.txt).
[oai telnet server home](telnetsrv.md)

View File

@@ -0,0 +1,40 @@
# starting the softmodem with the telnet server
By default the embedded telnet server, which is implemented in a shared library, is not built. It can be built after compiling the softmodem executable using the `build_oai` script:
```bash
cd \<oai repository\>/openairinterface5g
source oaienv
cd cmake_targets
./build_oai --build-lib telnetsrv
```
This will create the `libtelnetsrv.so` and `libtelnetsrv_<app> file in the `targets/bin` and `cmake_targets/ran_build/build` sub directories of the oai repository. <app> can be "enb", "gnb", "4GUE" or "5GUE", each library containing functions specific to a given executable.
When starting the softmodem, you must specify the **_\-\-telnetsrv_** option to load and start the telnet server. The telnet server is loaded via the [oai shared library loader](loader).
# using the Command Line Interface
By default the telnet server listen on all the ip addresses configured on the system and on port 9090. This behavior can be changed using the `listenaddr` and `listenport` parameters.
The telnet server includes a basic help, listing available commands and some commands also provide a specific detailed help sub-command.
Below are examples of telnet sessions:
* [getting help](telnethelp.md)
* [using the history](telnethist.md)
* [using the get and set commands](telnetgetset.md)
* [using the loop command](telnetloop.md)
* [loader command](telnetloader.md)
* [log command](telnetlog.md)
* [measur command](telnetmeasur.md)
# telnet server parameters
The telnet server is using the [oai configuration module](Config/Rtusage). Telnet parameters must be specified in the `telnetsrv` section. Some parameters can be modified via the telnet telnet server command, as specified in the last column of the following table.
| name | type | default | description | dynamic |
|:---:|:---:|:---:|:----|:----:|
| `listenaddr` | `ipV4 address, ascii format` | "0.0.0.0" | local address the server is listening on| N |
| `listenport` | `integer` | 9090 | port number the server is listening on | N |
| `loopcount` | `integer` | 10 | number of iterations for the loop command | Y |
| `loopdelay` | `integer` | 5000 | delay (in ms) between 2 loop command iterations | Y |
| `histfile` | `character string` | "oaitelnet.history" | file used for command history persistency | Y |
| `histfsize` | `integer` | 50 | maximum number of commands saved in the history | Y |
[oai telnet server home](telnetsrv.md)

View File

@@ -0,0 +1,17 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.

View File

@@ -0,0 +1,16 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

View File

@@ -0,0 +1,50 @@
{
"root": true,
"ignorePatterns": [
"projects/**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": [
"common/utils/websrv/frontend/tsconfig.json"
],
"createDefaultProgram": true
},
"extends": [
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates"
],
"rules": {
"@angular-eslint/directive-selector": [
"error",
{
"type": "attribute",
"prefix": "app",
"style": "camelCase"
}
],
"@angular-eslint/component-selector": [
"error",
{
"type": "element",
"prefix": "app",
"style": "kebab-case"
}
]
}
},
{
"files": [
"*.html"
],
"extends": [
"plugin:@angular-eslint/template/recommended"
],
"rules": {}
}
]
}

50
common/utils/websrv/frontend/.gitignore vendored Normal file
View File

@@ -0,0 +1,50 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist
/tmp
/out-tsc
/artifacts
/builds
# Only exists if Bazel was run
/bazel-out
# dependencies
/node_modules
# profiling files
chrome-profiler-events*.json
speed-measure-plugin*.json
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# misc
/.angular/cache
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# System Files
.DS_Store
Thumbs.db
config.toml

View File

@@ -0,0 +1 @@
# SoftModemNgx

View File

@@ -0,0 +1,108 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"cli": {
"analytics": false,
"schematicCollections": [
"@angular-eslint/schematics"
]
},
"version": 1,
"newProjectRoot": "projects",
"projects": {
"softmodemngx": {
"projectType": "application",
"schematics": {
"@schematics/angular:application": {
"strict": true
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/softmodem-ngx",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/purple-green.css",
"src/styles.css"
],
"scripts": [],
"allowedCommonJsDependencies": [
"@firebase/auth",
"firebase"
]
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "1.5mb",
"maximumError": "2mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "2kb",
"maximumError": "4kb"
}
],
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"outputHashing": "all"
},
"development": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": true,
"extractLicenses": false,
"sourceMap": true,
"namedChunks": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"browserTarget": "softmodemngx:build:production"
},
"development": {
"browserTarget": "softmodemngx:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "softmodemngx:build"
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
}
}
}
}
}

View File

@@ -0,0 +1,40 @@
// @ts-check
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');
/**
* @type { import("protractor").Config }
*/
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--headless', '--no-sandbox']
}
},
directConnect: true,
SELENIUM_PROMISE_MANAGER: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function () { }
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: StacktraceOption.PRETTY
}
}));
}
};

View File

@@ -0,0 +1,37 @@
// @ts-check
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');
/**
* @type { import("protractor").Config }
*/
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
browserName: 'chrome'
},
directConnect: true,
SELENIUM_PROMISE_MANAGER: false,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function () { }
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: StacktraceOption.PRETTY
}
}));
}
};

View File

@@ -0,0 +1,23 @@
import { browser, logging } from 'protractor';
import { AppPage } from './app.po';
describe('workspace-project App', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
// it('should display welcome message', async () => {
// await page.navigateTo();
// expect(await page.getTitleText()).toEqual('example app is running!');
// });
afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
expect(logs).not.toContain(jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry));
});
});

View File

@@ -0,0 +1,11 @@
import { browser, by, element } from 'protractor';
export class AppPage {
async navigateTo(): Promise<unknown> {
return browser.get(browser.baseUrl);
}
async getTitleText(): Promise<string> {
return element(by.css('app-root .content span')).getText();
}
}

View File

@@ -0,0 +1,10 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"module": "commonjs",
"target": "es2018",
"types": ["jasmine", "node"]
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,65 @@
{
"name": "softmodemngx",
"version": "2.0.0",
"scripts": {
"lint": "ng lint",
"build": "ng build",
"dev": "ng serve --configuration=development",
"prod": "ng serve --configuration=production"
},
"private": true,
"dependencies": {
"@angular-slider/ngx-slider": "^2.0.4",
"@angular/animations": "^14.1.0",
"@angular/cdk": "^14.1.0",
"@angular/common": "^14.1.0",
"@angular/compiler": "^14.1.0",
"@angular/core": "^14.1.0",
"@angular/flex-layout": "^14.0.0-beta.40",
"@angular/forms": "^14.1.0",
"@angular/material": "^14.1.0",
"@angular/platform-browser": "^14.1.0",
"@angular/platform-browser-dynamic": "^14.1.0",
"@angular/router": "^14.1.0",
"chart.js": "^3.8.2",
"moment": "^2.29.3",
"ng2-charts": "^4.0.0",
"rxjs": "^6.6.6",
"tslib": "^2.0.0",
"zone.js": "^0.11.4"
},
"devDependencies": {
"@angular-devkit/architect": "^0.1401.0",
"@angular-devkit/build-angular": "^14.1.0",
"@angular-eslint/builder": "14.0.2",
"@angular-eslint/eslint-plugin": "14.0.2",
"@angular-eslint/eslint-plugin-template": "14.0.2",
"@angular-eslint/schematics": "14.0.2",
"@angular-eslint/template-parser": "14.0.2",
"@angular/cli": "^14.1.0",
"@angular/compiler-cli": "^14.1.0",
"@angular/language-service": "^14.1.0",
"@types/node": "^12.20.23",
"@typescript-eslint/eslint-plugin": "^5.29.0",
"@typescript-eslint/parser": "^5.29.0",
"eslint": "^8.18.0",
"fs-extra": "^10.0.0",
"fuzzy": "^0.1.3",
"husky": "^5.1.3",
"inquirer": "^6.2.2",
"inquirer-autocomplete-prompt": "^1.0.1",
"jasmine-core": "~3.7.1",
"jasmine-spec-reporter": "~5.0.0",
"jsonc-parser": "^3.0.0",
"open": "^7.0.3",
"ts-node": "^8.10.2",
"tslint-angular": "^3.0.3",
"typescript": "~4.6.4"
},
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged && ng lint && ng test",
"pre-push": "ng build --aot true"
}
}
}

View File

@@ -0,0 +1,116 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from 'src/environments/environment';
export interface IInfo {
name: string;
value: string;
type: IArgType;
modifiable: boolean; //set command ?
}
export interface IModule {
name: string;
}
export enum ILogLvl {
error = "error",
warn = "warn",
analysis = "analysis",
info = "info",
debug = "debug",
trace = "trace"
}
export enum ILogOutput {
stdout = "stdout",
telnet = "telnet",
web = "web",
file = "/tmp/<component>.log",
}
export enum IArgType {
boolean = "boolean",
list = "list",
loglvl = "loglvl",
range = "range",
number = "number",
string = "string",
configfile = "configfile",
simuTypes = "simuTypes",
}
export enum ICommandOptions {
update = "update", // result can be updated, triggers update button on result page when set
}
export interface IVariable {
name: string;
value: string;
type: IArgType;
modifiable: boolean; //set command ?
}
export interface ICommand {
name: string;
confirm?: string;
question?: IQuestion;
param?: IVariable;
options?: ICommandOptions[];
}
export interface ITable {
columns: IColumn[];
rows: string[];
}
export interface IQuestion {
display: string;
pname: string;
type: IArgType;
}
export interface IResp {
display: string[],
table?: ITable
}
export interface IParam {
value: string,
col: IColumn
}
export interface IColumn { //should use IVariable ?
name: string;
type: IArgType;
modifiable: boolean; //set command ?
}
export interface IRow {
params: IParam[],
rawIndex: number,
cmdName: string
}
export const route = 'oaisoftmodem/';
@Injectable({
providedIn: 'root',
})
export class CommandsApi {
constructor(private httpClient: HttpClient) { }
public readInfos$ = () => this.httpClient.get<IInfo[]>('http://' + environment.backend + route + 'variables/');
public setInfo$ = (info: IInfo) => this.httpClient.post<IResp>('http://' + environment.backend + route + 'variables/', info);
public readModules$ = () => this.httpClient.get<IModule[]>('http://' + environment.backend + route + 'commands/');
public readVariables$ = (moduleName: string) => this.httpClient.get<IInfo[]>('http://' + environment.backend + route + moduleName + '/variables/');
public readCommands$ = (moduleName: string) => this.httpClient.get<ICommand[]>('http://' + environment.backend + route + moduleName + '/commands/');
public runCommand$ = (command: ICommand, moduleName: string) => this.httpClient.post<IResp>('http://' + environment.backend + route + moduleName + '/commands/', command);
public setCmdVariable$ = (variable: IInfo, moduleName: string) => this.httpClient.post<IResp>('http://' + environment.backend + route + moduleName + '/variables/', variable);
public setCmdParams$ = (row: IRow, moduleName: string) => this.httpClient.post<IResp>('http://' + environment.backend + route + moduleName + '/set/', row);
}

View File

@@ -0,0 +1,47 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from 'src/environments/environment';
export enum IScopeGraphType {
IQs = "IQs",
LLR = "LLR",
WF = "WF",
UNSUP = "UNSUP"
}
export interface IGraphDesc {
title: string;
type: IScopeGraphType;
id: number;
srvidx: number;
}
export interface IScopeDesc {
title: string;
graphs: IGraphDesc[];
}
export interface IScopeCmd {
name: string;
graphid?: number; // the graph srvidx
value: string;
}
export interface ISigDesc {
target_id: number;
antenna_id: number;
}
const route = 'oaisoftmodem/scopectrl/';
@Injectable({
providedIn: 'root',
})
export class ScopeApi {
constructor(private httpClient: HttpClient) { }
public getScopeInfos$ = () => this.httpClient.get<IScopeDesc>('http://' + environment.backend + route);
public setScopeParams$ = (cmd: IScopeCmd) => this.httpClient.post('http://' + environment.backend + route, cmd);
}

View File

@@ -0,0 +1,16 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { CommandsComponent } from './components/commands/commands.component';
const routes: Routes = [
{ path: '', redirectTo: '/websrv', pathMatch: 'full' },
{ path: 'websrv', component: AppComponent },
{ path: '**', redirectTo: '' },
];
@NgModule({
imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],
exports: [RouterModule],
})
export class AppRoutingModule { }

View File

@@ -0,0 +1,11 @@
.mat-tab-group {
margin-bottom: 10px;
}
.mat-ink-bar{
height: 8px !important;
}
.mat-tab-label-active
{
color: #000000 !important;
}

View File

@@ -0,0 +1,11 @@
<mat-tab-group backgroundColor="primary" color="accent">
<mat-tab label="Commands">
<app-commands></app-commands>
</mat-tab>
<mat-tab label={{scopelabel}} disabled={{!isscopeavailable}}>
<app-scope (ScopeEnabled)="onScopeEnabled($event)"></app-scope>
</mat-tab>
<mat-tab label="Logger">
<app-logger></app-logger>
</mat-tab>
</mat-tab-group>

View File

@@ -0,0 +1,22 @@
import { Component } from '@angular/core';
import { MatTabsModule } from '@angular/material/tabs';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
title = 'oai softmodem';
isscopeavailable = false;
scopelabel = '';
constructor() {
this.scopelabel = '';
this.isscopeavailable=false;
}
onScopeEnabled( enabled: boolean) {
this.isscopeavailable= enabled;
this.scopelabel= enabled ? 'Scope' : '';
}
}

View File

@@ -0,0 +1,88 @@
import { DragDropModule } from '@angular/cdk/drag-drop';
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { FlexLayoutModule } from '@angular/flex-layout';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatChipsModule } from '@angular/material/chips';
import { MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatSliderModule } from '@angular/material/slider';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatTableModule } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs';
import { MatToolbarModule } from '@angular/material/toolbar';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgChartsModule } from 'ng2-charts';
import { CommandsApi } from './api/commands.api';
import { ScopeApi } from './api/scope.api';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { CommandsComponent } from './components/commands/commands.component';
import { ConfirmDialogComponent } from './components/confirm/confirm.component';
import { DialogComponent } from './components/dialog/dialog.component';
import { QuestionDialogComponent } from './components/question/question.component';
import { ScopeComponent } from './components/scope/scope.component';
import { InterceptorProviders } from './interceptors/interceptors';
import { LoadingService } from './services/loading.service';
import { WebSocketService } from './services/websocket.service';
import { LoggerComponent } from './components/logger/logger.component';
@NgModule({
declarations: [
AppComponent,
CommandsComponent,
ConfirmDialogComponent,
QuestionDialogComponent,
DialogComponent,
ScopeComponent,
LoggerComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule,
ReactiveFormsModule,
BrowserAnimationsModule,
HttpClientModule,
MatButtonModule,
FlexLayoutModule,
MatDialogModule,
DragDropModule,
MatSliderModule,
MatFormFieldModule,
MatInputModule,
MatChipsModule,
MatProgressSpinnerModule,
MatToolbarModule,
MatTableModule,
MatListModule,
MatSelectModule,
MatSnackBarModule,
MatSlideToggleModule,
MatGridListModule,
MatCardModule,
MatTabsModule,
NgChartsModule,
],
providers: [
// services
LoadingService,
WebSocketService,
// api
CommandsApi,
ScopeApi,
// interceptors
InterceptorProviders,
],
bootstrap: [AppComponent]
})
export class AppModule { }

View File

@@ -0,0 +1,127 @@
<div class="grid-container" >
<mat-grid-list cols="2" rowHeight="15vh" >
<mat-grid-tile [colspan]="1" [rowspan]="2" >
<mat-card class="dashboard-card">
<mat-card-header >
<mat-card-title>Connection info</mat-card-title>
</mat-card-header>
<mat-card-content class="dashboard-card-content">
<div *ngIf="infos$ | async as infos">
<div class="spaceddiv" *ngFor="let info of infos">
<mat-form-field class="scrollablefield" >
<mat-label>{{ info.nameFC.value }}</mat-label>
<input matInput [formControl]="info.valueFC" [readonly]="!info.modifiableFC.value" />
</mat-form-field>
<button mat-raised-button color="primary" [disabled]="!info.modifiableFC.value"
(click)="onInfoSubmit(info)">
{{ info.btnTxtFC }}
</button>
</div>
</div>
</mat-card-content>
</mat-card>
</mat-grid-tile>
<mat-grid-tile [colspan]="1" [rowspan]="2">
<mat-card class="dashboard-card">
<mat-card-header>
<mat-card-title>Softmodem commands</mat-card-title>
</mat-card-header>
<mat-card-content class="dashboard-card-content">
<div class="spaceddiv" *ngIf="modules$ | async as modules" fxLaypout="row">
<mat-form-field>
<mat-label>Module</mat-label>
<mat-select (selectionChange)="onModuleSelect($event.value)" [(value)]="selectedModule">
<mat-option *ngFor="let module of modules" [value]="module"> {{ module.name }}
</mat-option>
</mat-select>
</mat-form-field>
</div>
<div *ngIf="cmds$ | async as cmds">
<div *ngIf="cmds.length">
<mat-chip-list>
<mat-chip *ngFor="let cmd of cmds" (click)="onCmdSubmit(cmd)"> {{cmd.nameFC.value}}
</mat-chip>
</mat-chip-list>
</div>
</div>
</mat-card-content>
</mat-card>
</mat-grid-tile>
<mat-grid-tile *ngIf="vars$ | async as vars" [colspan]="1" [rowspan]="4">
<mat-card *ngIf="vars.length" class="dashboard-card">
<mat-card-header>
<mat-card-title>{{ selectedModule!.name }} variables</mat-card-title>
</mat-card-header>
<mat-card-content class="dashboard-card-content">
<div class="spaceddiv" *ngFor="let variable of vars">
<mat-form-field class="scrollablefield">
<mat-label>{{ variable.nameFC.value }}</mat-label>
<input matInput [formControl]="variable.valueFC" [readonly]="!variable.modifiableFC.value" />
</mat-form-field>
<button mat-raised-button color="primary" [disabled]="!variable.modifiableFC.value"
(click)="onVarsubmit(variable)">
set
</button>
</div>
</mat-card-content>
</mat-card>
</mat-grid-tile>
<mat-grid-tile *ngIf="(rows$ | async)?.length" [colspan]="1" [rowspan]="4">
<mat-card class="dashboard-card">
<mat-card-header>
<mat-card-title>{{ selectedModule!.name }} {{ selectedCmd!.name }} </mat-card-title>
</mat-card-header>
<mat-card-content class="dashboard-card-content">
<div >
<mat-table mat-table [dataSource]="rows$" multiTemplateDataRows class="mat-elevation-z8">
<div class="TableRowdiv" *ngFor="let col of columns; index as colIndex" matColumnDef="{{col.name}}">
<mat-header-cell *matHeaderCellDef fxLayoutAlign="start center">
<div>
<h4>{{ col.name }}</h4>
</div>
</mat-header-cell>
<mat-cell *matCellDef="let row">
<div [ngSwitch]="col.type" [formGroup]="row" fxLayoutAlign="start center">
<mat-slide-toggle *ngSwitchCase="IArgType.boolean" [formControl]="row.paramsCtrls[colIndex].valueFC"
[checked]="row.paramsCtrls[colIndex].valueFC.value">
</mat-slide-toggle>
<mat-list-item role="listitem">
<mat-form-field *ngSwitchCase="IArgType.loglvl">
<mat-select [formControl]="row.paramsCtrls[colIndex].valueFC"
[(value)]="row.paramsCtrls[colIndex].valueFC.value">
<mat-option *ngFor="let level of logLvlValues" [value]="level"> {{ level }}
</mat-option>
</mat-select>
</mat-form-field>
</mat-list-item>
<div *ngSwitchDefault>
<mat-form-field>
<input matInput [formControl]="row.paramsCtrls[colIndex].valueFC" [readonly]="!col.modifiable" />
</mat-form-field>
</div>
</div>
</mat-cell>
</div>
<div matColumnDef="button">
<mat-header-cell *matHeaderCellDef> </mat-header-cell>
<mat-cell *matCellDef="let row" fxLayoutAlign="center">
<button class="TableBtn" mat-raised-button color="primary" (click)="onParamSubmit(row)" [disabled]="row.pristine"> set
</button>
</mat-cell>
</div>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
</mat-table>
</div>
</mat-card-content>
</mat-card>
</mat-grid-tile>
</mat-grid-list>
</div>

View File

@@ -0,0 +1,80 @@
.spaceddiv {
height: 45px;
width: 40vw;
display: flex;
justify-content: space-between;
margin: 0 auto;
padding: 10px 0;
}
.TableRowdiv {
height: 38px;
display: flex;
/* justify-content: space-between;*/
margin: 2px;
width: 95%;
.item:nth-child(1n){
width: 10%;
}
.item {
width: 4%;
margin: 10px;
}
}
.TableBtn {
height: 25px;
width: 35p;
display:flex;
padding-bottom:8px;
}
.TableText {
display: flex;
width: 8em;
overflow-x: auto;
}
.scrollablefield {
width: 80%;
height: 20px;
.mat-input-element {
overflow-x: auto;
}
}
.mat-card {
height: 95%;
overflow-y: auto;
overflow-x: scroll;
}
.status {
color: green;
font-weight: 800;
}
.ng-invalid .status {
color: red;
}
.grid-container {
margin: 20px;
}
.dashboard-card {
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
}
.more-button {
position: absolute;
top: 5px;
right: 10px;
}
.dashboard-card-content {
text-align: center;
}

View File

@@ -0,0 +1,197 @@
import { Component } from '@angular/core';
import { UntypedFormArray } from '@angular/forms';
import { BehaviorSubject, forkJoin, timer } from 'rxjs';
import { Observable } from 'rxjs';
import { of } from 'rxjs';
import { filter } from 'rxjs/operators';
import { map } from 'rxjs/operators';
import { tap } from 'rxjs/operators';
import { switchMap } from 'rxjs/operators';
import { CommandsApi, IArgType, IColumn, ICommand, IInfo, ILogLvl, IParam, IRow } from 'src/app/api/commands.api';
import { CmdCtrl } from 'src/app/controls/cmd.control';
import { InfoCtrl } from 'src/app/controls/info.control';
import { ModuleCtrl } from 'src/app/controls/module.control';
import { RowCtrl } from 'src/app/controls/row.control';
import { VarCtrl } from 'src/app/controls/var.control';
import { DialogService } from 'src/app/services/dialog.service';
import { DownloadService } from 'src/app/services/download.service';
import { LoadingService } from 'src/app/services/loading.service';
import { ViewEncapsulation } from '@angular/core';
const CHANNEL_MOD_MODULE = "channelmod"
const PREDEF_CMD = "show predef"
@Component({
selector: 'app-commands',
templateUrl: './commands.component.html',
styleUrls: ['./commands.component.scss'],
encapsulation: ViewEncapsulation.None,
})
export class CommandsComponent {
IArgType = IArgType;
logLvlValues = Object.values(ILogLvl)
// softmodem
infos$: Observable<VarCtrl[]>
modules$: Observable<ModuleCtrl[]>
// module
selectedModule?: ModuleCtrl
vars$?: Observable<VarCtrl[]>
cmds$?: Observable<CmdCtrl[]>
// command
selectedCmd?: ICommand
displayedColumns: string[] = []
rows$: BehaviorSubject<RowCtrl[]> = new BehaviorSubject<RowCtrl[]>([])
columns: IColumn[] = []
constructor(
public commandsApi: CommandsApi,
public loadingService: LoadingService,
public dialogService: DialogService,
public downloadService: DownloadService,
) {
this.infos$ = this.commandsApi.readInfos$().pipe(
map((infos) => infos.map(info => new InfoCtrl(info)))
);
this.modules$ = this.commandsApi.readModules$().pipe(
map(imodules => imodules.map(imodule => new ModuleCtrl(imodule))),
filter(controls => controls.length > 0),
tap(controls => this.onModuleSelect(controls[0]))
);
}
// get types$() {
// return this.modules$.pipe(
// filter(modules => modules.map(module => module.name).includes(CHANNEL_MOD_MODULE)),
// mergeMap(modules => this.commandsApi.readCommands$(modules[0]!.name)),
// map(icmds => icmds.filter(cmd => cmd.name === PREDEF_CMD)),
// filter(icmds => icmds.length > 0),
// map(icmds => new CmdCtrl(icmds[0])),
// mergeMap(control => this.commandsApi.runCommand$(control.api(), CHANNEL_MOD_MODULE)),
// map(resp => resp.display.map(line => line.match('/\s*[0-9]*\s*(\S*)\n/gm')![0])),
// tap(types => console.log(types.join(', ')))
// );
// }
onInfoSubmit(control: InfoCtrl) {
let info: IInfo = control.api();
if (info.type === IArgType.configfile) {
this.downloadService.getFile(info.value)
} else {
this.commandsApi.setInfo$(info).subscribe();
}
}
onModuleSelect(module: ModuleCtrl) {
this.selectedModule = module
this.selectedCmd = undefined
this.cmds$ = this.commandsApi.readCommands$(module.name).pipe(
map(icmds => icmds.map(icmd => new CmdCtrl(icmd))),
map(cmds => {
module.cmdsFA = new UntypedFormArray(cmds)
return module.cmdsFA.controls as CmdCtrl[]
})
)
this.vars$ = this.commandsApi.readVariables$(module.name).pipe(
map(ivars => ivars.map(ivar => new VarCtrl(ivar))),
map(vars => {
module.varsFA = new UntypedFormArray(vars)
return module.varsFA.controls as VarCtrl[]
})
)
}
onVarsubmit(control: VarCtrl) {
this.commandsApi.setCmdVariable$(control.api(), this.selectedModule!.name)
.pipe(
map(resp => this.dialogService.openVarRespDialog(resp))
).subscribe();
}
onCmdSubmit(control: CmdCtrl) {
this.selectedCmd = control.api()
const obsparam$ = forkJoin([control.confirm
? this.dialogService.openConfirmDialog(control.confirm)
: control.question
? this.dialogService.openQuestionDialog(this.selectedModule! + " " + this.selectedModule!.name, control)
: of(true)]);
obsparam$.pipe(
switchMap(results => {
if (!results[0])
return of(null);
if (control.isResUpdatable())
control.ResUpdTimer = timer(2000, 1000);
return this.execCmd$(control);
}))
.subscribe();
}
private execCmd$(control: CmdCtrl) {
if (control.isResUpdatable() && control.ResUpdTimer) {
if (!(control.ResUpdTimerSubscriber)) {
control.ResUpdTimerSubscriber = control.ResUpdTimer.subscribe(iteration => {
console.log("Update timer fired" + iteration);
if (control.updbtnname === "Stop update")
this.execCmd$(control);
});
}
}
this.commandsApi.runCommand$(control!.api(), this.selectedModule!.name).subscribe(resp => {
if (resp.display[0]) this.dialogService.updateCmdDialog(control, resp, 'cmd ' + control.nameFC.value + ' response:')
// else return of(resp)
const controls: RowCtrl[] = []
this.displayedColumns = []
if (resp.table) {
this.columns = resp.table.columns
this.displayedColumns = this.columns.map(col => col.name)
this.displayedColumns.push('button')
for (let rawIndex = 0; rawIndex < resp.table.rows.length; rawIndex++) {
let params: IParam[] = []
for (let i = 0; i < this.columns.length; i = i + 1) {
params.push({
value: resp.table.rows[rawIndex][i],
col: this.columns[i]
})
}
const irow: IRow = {
params: params,
rawIndex: rawIndex,
cmdName: this.selectedCmd!.name
}
controls[rawIndex] = new RowCtrl(irow)
}
}
this.rows$.next(controls)
},
err => console.error('execCmd error: ' + err),
() => console.log('execCmd completed: '),
) // map resp
return of(null);
}
onParamSubmit(control: RowCtrl) {
this.commandsApi.setCmdParams$(control.api(), this.selectedModule!.name).subscribe(() => this.execCmd$(new CmdCtrl(this.selectedCmd!)));
}
}

View File

@@ -0,0 +1,5 @@
<h3>{{ data.title }}</h3>
<div fxLayoutGap="10px" mat-dialog-actions fxLayout="row" fxLayoutAlign="center start">
<button mat-button [mat-dialog-close]="true" cdkFocusInitial>Ok</button>
<button mat-button (click)="onNoClick()">Cancel</button>
</div>

View File

@@ -0,0 +1,21 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { Component, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({
selector: 'app-confirm',
templateUrl: './confirm.component.html',
styleUrls: ['./confirm.component.css']
})
export class ConfirmDialogComponent {
constructor(
public dialogRef: MatDialogRef<void>,
@Inject(MAT_DIALOG_DATA) public data: any) {
}
onNoClick() {
this.dialogRef.close();
}
}

View File

@@ -0,0 +1,34 @@
/* icon that can be used to drag a dialog */
::ng-deep.dialogdrag-handle {
top: 1px;
left: 1px;
color: #ccc;
cursor: move;
width: 24px;
height: 24px;
}
/* make dialog for command response using the display field scrollable */
::ng-deep.cmdRespDialog {
resize: both;
overflow: scroll;
}
/* make only the dialog for command response using the display field movable */
/* (hide the close button and the drag icon) */
::ng-deep.varRespDialog #dialogclose {
display:none ;
}
::ng-deep.varRespDialog #dialogdrag {
display:none;
}
::ng-deep.errRespDialog #dialogclose {
display:none ;
}
::ng-deep.errRespDialog #dialogdrag {
display:none;
}

View File

@@ -0,0 +1,17 @@
<div id="dialogdrag" cdkDrag cdkDragRootElement=".cdk-overlay-pane">
<div class="dialogdrag-handle" cdkDragHandle>
<svg width="24px" fill="currentColor" viewBox="0 0 24 24">
<path
d="M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z">
</path>
<path d="M0 0h24v24H0z" fill="none"></path>
</svg>
</div>
</div>
<h3> {{ data.title }}</h3>
<pre [innerHTML]="data.body"></pre>
<mat-dialog-actions fxLayoutAlign="end">
<button id="dialogclose" mat-button mat-dialog-close>Close</button>
<button id="dialogupdate" mat-button (click)="onUpdate(data.control)"
*ngIf="data.updatable">{{data.control.updbtnname}}</button>
</mat-dialog-actions>

View File

@@ -0,0 +1,23 @@
import { Component, ViewChild, ElementRef, Inject, OnInit } from '@angular/core';
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
import { DialogService } from 'src/app/services/dialog.service';
import { CmdCtrl } from 'src/app/controls/cmd.control';
@Component({
selector: 'app-dialog',
templateUrl: './dialog.component.html',
styleUrls: ['./dialog.component.css'],
})
export class DialogComponent {
constructor(@Inject(MAT_DIALOG_DATA) public data: any) {
}
onUpdate(control: CmdCtrl) {
if ( control.updbtnname==="Stop update" ){
control.stopUpdate();
} else {
control.startUpdate();
}
}
}

View File

@@ -0,0 +1,5 @@
<div id="logDisplay">
<ul>
<li *ngFor="let msg of messages">{{JSON.stringify(msg)}}</li>
</ul>
</div>

View File

@@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { LoggerComponent } from './logger.component';
describe('LoggerComponent', () => {
let component: LoggerComponent;
let fixture: ComponentFixture<LoggerComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ LoggerComponent ]
})
.compileComponents();
fixture = TestBed.createComponent(LoggerComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

Some files were not shown because too many files have changed in this diff Show More