Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zzha zzha
OpenXG-RAN
Commits
86881b14
Commit
86881b14
authored
Apr 13, 2021
by
Laurent THOMAS
Browse files
Options
Browse Files
Download
Plain Diff
merge again develop
parents
86f1c69f
f21ac1a8
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
413 additions
and
231 deletions
+413
-231
ci-scripts/buildOnRH.sh
ci-scripts/buildOnRH.sh
+0
-216
ci-scripts/cls_static_code_analysis.py
ci-scripts/cls_static_code_analysis.py
+192
-0
ci-scripts/docker/Dockerfile.cppcheck.xenial
ci-scripts/docker/Dockerfile.cppcheck.xenial
+31
-0
ci-scripts/main.py
ci-scripts/main.py
+4
-4
ci-scripts/reportBuildLocally.sh
ci-scripts/reportBuildLocally.sh
+11
-11
ci-scripts/xml_files/cppcheck.xml
ci-scripts/xml_files/cppcheck.xml
+37
-0
docker/Dockerfile.phySim.rhel8.2
docker/Dockerfile.phySim.rhel8.2
+123
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+15
-0
No files found.
ci-scripts/buildOnRH.sh
deleted
100755 → 0
View file @
86f1c69f
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI RedHat Build Check script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
"Usage:"
echo
"------"
echo
" buildOnRH.sh [OPTIONS]"
echo
""
echo
"Options:"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
echo
""
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --remote-host #### OR -rh ####"
echo
" Specify the RedHat remote server."
echo
""
echo
" --remote-user-name #### OR -ru ####"
echo
" Specify the RedHat remote server username."
echo
""
echo
" --remote-password #### OR -rp ####"
echo
" Specify the RedHat remote server password."
echo
""
echo
" --remote-path #### OR -ra ####"
echo
" Specify the RedHat remote server path to work on."
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
14
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
RH_HOST
=
XX
RH_USER
=
XX
RH_PASSWD
=
XX
RH_PATH
=
XX
JOB_NAME
=
XX
BUILD_ID
=
XX
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-rh
|
--remote-host
)
RH_HOST
=
"
$2
"
shift
shift
;;
-ru
|
--remote-user-name
)
RH_USER
=
"
$2
"
shift
shift
;;
-rp
|
--remote-password
)
RH_PASSWD
=
"
$2
"
shift
shift
;;
-ra
|
--remote-path
)
RH_PATH
=
"
$2
"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
then
echo
"Missing localZip.zip file!"
exit
1
fi
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
||
[
"
$RH_HOST
"
==
"XX"
]
||
[
"
$RH_USER
"
==
"XX"
]
||
[
"
$RH_PASSWD
"
==
"XX"
]
||
[
"
$RH_PATH
"
==
"XX"
]
then
echo
"Missing options"
usage
exit
1
fi
echo
"############################################################"
echo
"Copying GIT repo into RedHat Server"
echo
"############################################################"
echo
"rm -Rf
${
RH_PATH
}
"
>>
rh-cmd.txt
echo
"mkdir -p
${
RH_PATH
}
"
>>
rh-cmd.txt
sshpass
-p
${
RH_PASSWD
}
ssh
-o
'StrictHostKeyChecking no'
${
RH_USER
}
@
${
RH_HOST
}
< rh-cmd.txt
rm
-f
rh-cmd.txt
echo
"############################################################"
echo
"Running install and build script on RedHat Server"
echo
"############################################################"
sshpass
-p
${
RH_PASSWD
}
scp
-o
'StrictHostKeyChecking no'
$JENKINS_WKSP
/localZip.zip
${
RH_USER
}
@
${
RH_HOST
}
:
${
RH_PATH
}
echo
"cd
${
RH_PATH
}
"
>
rh-cmd.txt
echo
"unzip -qq localZip.zip"
>>
rh-cmd.txt
echo
"source oaienv"
>>
rh-cmd.txt
echo
"cd cmake_targets"
>>
rh-cmd.txt
echo
"mkdir -p log"
>>
rh-cmd.txt
echo
"./build_oai -I -w USRP --eNB > log/install-build.txt 2>&1"
>>
rh-cmd.txt
sshpass
-p
${
RH_PASSWD
}
ssh
-o
'StrictHostKeyChecking no'
${
RH_USER
}
@
${
RH_HOST
}
< rh-cmd.txt
rm
-f
rh-cmd.txt
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
if
[
!
-d
$JENKINS_WKSP
/archives
]
then
mkdir
-p
$JENKINS_WKSP
/archives
fi
ARCHIVES_LOC
=
$JENKINS_WKSP
/archives/red_hat
if
[
!
-d
$ARCHIVES_LOC
]
then
mkdir
-p
$ARCHIVES_LOC
fi
sshpass
-p
${
RH_PASSWD
}
scp
-o
'StrictHostKeyChecking no'
${
RH_USER
}
@
${
RH_HOST
}
:
${
RH_PATH
}
/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
echo
"############################################################"
echo
"Checking build status"
echo
"############################################################"
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
7
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
`
STATUS
=
0
NB_FOUND_FILES
=
0
for
FULLFILE
in
$LOG_FILES
do
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
then
filename
=
$(
basename
--
"
$FULLFILE
"
)
PASS_PATTERN
=
`
echo
$filename
|
sed
-e
"s#
$LOG_PATTERN
##"
`
LOCAL_STAT
=
`
egrep
-c
"Built target
$PASS_PATTERN
"
$FULLFILE
`
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
fi
done
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
then
echo
"Expecting
$NB_PATTERN_FILES
log files and found
$NB_FOUND_FILES
"
STATUS
=
-1
fi
echo
"COMMAND: build_oai -I -w USRP --eNB"
>
$ARCHIVES_LOC
/build_final_status.log
if
[
$STATUS
-eq
0
]
then
echo
"BUILD_OK"
>>
$ARCHIVES_LOC
/build_final_status.log
echo
"STATUS seems OK"
else
echo
"BUILD_KO"
>>
$ARCHIVES_LOC
/build_final_status.log
echo
"STATUS failed?"
fi
exit
$STATUS
ci-scripts/cls_static_code_analysis.py
0 → 100644
View file @
86881b14
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#-----------------------------------------------------------
# Import
#-----------------------------------------------------------
import
sys
# arg
import
re
# reg
import
logging
import
os
import
time
#-----------------------------------------------------------
# OAI Testing modules
#-----------------------------------------------------------
import
sshconnection
as
SSH
import
helpreadme
as
HELP
import
constants
as
CONST
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
class
CppCheckResults
():
def
__init__
(
self
):
self
.
variants
=
[
'xenial'
,
'bionic'
]
self
.
versions
=
[
''
,
''
]
self
.
nbErrors
=
[
0
,
0
]
self
.
nbWarnings
=
[
0
,
0
]
self
.
nbNullPtrs
=
[
0
,
0
]
self
.
nbMemLeaks
=
[
0
,
0
]
self
.
nbUninitVars
=
[
0
,
0
]
self
.
nbInvalidPrintf
=
[
0
,
0
]
self
.
nbModuloAlways
=
[
0
,
0
]
self
.
nbTooManyBitsShift
=
[
0
,
0
]
self
.
nbIntegerOverflow
=
[
0
,
0
]
self
.
nbWrongScanfArg
=
[
0
,
0
]
self
.
nbPtrAddNotNull
=
[
0
,
0
]
self
.
nbOppoInnerCondition
=
[
0
,
0
]
class
StaticCodeAnalysis
():
def
__init__
(
self
):
self
.
ranRepository
=
''
self
.
ranBranch
=
''
self
.
ranAllowMerge
=
False
self
.
ranCommitID
=
''
self
.
ranTargetBranch
=
''
self
.
eNBIPAddress
=
''
self
.
eNBUserName
=
''
self
.
eNBPassword
=
''
self
.
eNBSourceCodePath
=
''
def
CppCheckAnalysis
(
self
,
HTML
):
if
self
.
ranRepository
==
''
or
self
.
ranBranch
==
''
or
self
.
ranCommitID
==
''
:
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Insufficient Parameter'
)
lIpAddr
=
self
.
eNBIPAddress
lUserName
=
self
.
eNBUserName
lPassWord
=
self
.
eNBPassword
lSourcePath
=
self
.
eNBSourceCodePath
if
lIpAddr
==
''
or
lUserName
==
''
or
lPassWord
==
''
or
lSourcePath
==
''
:
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Insufficient Parameter'
)
logging
.
debug
(
'Building on server: '
+
lIpAddr
)
mySSH
=
SSH
.
SSHConnection
()
mySSH
.
open
(
lIpAddr
,
lUserName
,
lPassWord
)
self
.
testCase_id
=
HTML
.
testCase_id
# on RedHat/CentOS .git extension is mandatory
result
=
re
.
search
(
'([a-zA-Z0-9\:\-\.\/])+\.git'
,
self
.
ranRepository
)
if
result
is
not
None
:
full_ran_repo_name
=
self
.
ranRepository
else
:
full_ran_repo_name
=
self
.
ranRepository
+
'.git'
mySSH
.
command
(
'mkdir -p '
+
lSourcePath
,
'\$'
,
5
)
mySSH
.
command
(
'cd '
+
lSourcePath
,
'\$'
,
5
)
mySSH
.
command
(
'if [ ! -e .git ]; then stdbuf -o0 git clone '
+
full_ran_repo_name
+
' .; else stdbuf -o0 git fetch --prune; fi'
,
'\$'
,
600
)
# Raphael: here add a check if git clone or git fetch went smoothly
mySSH
.
command
(
'git config user.email "jenkins@openairinterface.org"'
,
'\$'
,
5
)
mySSH
.
command
(
'git config user.name "OAI Jenkins"'
,
'\$'
,
5
)
mySSH
.
command
(
'echo '
+
lPassWord
+
' | sudo -S git clean -x -d -ff'
,
'\$'
,
30
)
mySSH
.
command
(
'mkdir -p cmake_targets/log'
,
'\$'
,
5
)
# if the commit ID is provided use it to point to it
if
self
.
ranCommitID
!=
''
:
mySSH
.
command
(
'git checkout -f '
+
self
.
ranCommitID
,
'\$'
,
5
)
mySSH
.
command
(
'docker image rm oai-cppcheck:bionic oai-cppcheck:xenial || true'
,
'\$'
,
60
)
mySSH
.
command
(
'docker build --tag oai-cppcheck:xenial --file ci-scripts/docker/Dockerfile.cppcheck.xenial . > cmake_targets/log/cppcheck-xenial.txt 2>&1'
,
'\$'
,
600
)
mySSH
.
command
(
'sed -e "s@xenial@bionic@" ci-scripts/docker/Dockerfile.cppcheck.xenial > ci-scripts/docker/Dockerfile.cppcheck.bionic'
,
'\$'
,
6
)
mySSH
.
command
(
'docker build --tag oai-cppcheck:bionic --file ci-scripts/docker/Dockerfile.cppcheck.bionic . > cmake_targets/log/cppcheck-bionic.txt 2>&1'
,
'\$'
,
600
)
mySSH
.
command
(
'docker image rm oai-cppcheck:bionic oai-cppcheck:xenial || true'
,
'\$'
,
60
)
# Analyzing the logs
mySSH
.
command
(
'cd '
+
lSourcePath
+
'/cmake_targets'
,
'\$'
,
5
)
mySSH
.
command
(
'mkdir -p build_log_'
+
self
.
testCase_id
,
'\$'
,
5
)
mySSH
.
command
(
'mv log/* '
+
'build_log_'
+
self
.
testCase_id
,
'\$'
,
5
)
mySSH
.
close
()
mySSH
.
copyin
(
lIpAddr
,
lUserName
,
lPassWord
,
lSourcePath
+
'/cmake_targets/build_log_'
+
self
.
testCase_id
+
'/*'
,
'.'
)
CCR
=
CppCheckResults
()
vId
=
0
for
variant
in
CCR
.
variants
:
if
(
os
.
path
.
isfile
(
'./cppcheck-'
+
variant
+
'.txt'
)):
xmlStart
=
False
with
open
(
'./cppcheck-'
+
variant
+
'.txt'
,
'r'
)
as
logfile
:
for
line
in
logfile
:
ret
=
re
.
search
(
'Unpacking cppcheck \((?P<version>[0-9\.]+)'
,
str
(
line
))
if
ret
is
not
None
:
CCR
.
versions
[
vId
]
=
ret
.
group
(
'version'
)
if
re
.
search
(
'RUN cat cmake_targets/log/cppcheck.xml'
,
str
(
line
))
is
not
None
:
xmlStart
=
True
if
xmlStart
:
if
re
.
search
(
'severity="error"'
,
str
(
line
))
is
not
None
:
CCR
.
nbErrors
[
vId
]
+=
1
if
re
.
search
(
'severity="warning"'
,
str
(
line
))
is
not
None
:
CCR
.
nbWarnings
[
vId
]
+=
1
if
re
.
search
(
'id="memleak"'
,
str
(
line
))
is
not
None
:
CCR
.
nbMemLeaks
[
vId
]
+=
1
if
re
.
search
(
'id="nullPointer"'
,
str
(
line
))
is
not
None
:
CCR
.
nbNullPtrs
[
vId
]
+=
1
if
re
.
search
(
'id="uninitvar"'
,
str
(
line
))
is
not
None
:
CCR
.
nbUninitVars
[
vId
]
+=
1
if
re
.
search
(
'id="invalidPrintfArgType_sint"|id="invalidPrintfArgType_uint"'
,
str
(
line
))
is
not
None
:
CCR
.
nbInvalidPrintf
[
vId
]
+=
1
if
re
.
search
(
'id="moduloAlwaysTrueFalse"'
,
str
(
line
))
is
not
None
:
CCR
.
nbModuloAlways
[
vId
]
+=
1
if
re
.
search
(
'id="shiftTooManyBitsSigned"'
,
str
(
line
))
is
not
None
:
CCR
.
nbTooManyBitsShift
[
vId
]
+=
1
if
re
.
search
(
'id="integerOverflow"'
,
str
(
line
))
is
not
None
:
CCR
.
nbIntegerOverflow
[
vId
]
+=
1
if
re
.
search
(
'id="wrongPrintfScanfArgNum"|id="invalidScanfArgType_int"'
,
str
(
line
))
is
not
None
:
CCR
.
nbWrongScanfArg
[
vId
]
+=
1
if
re
.
search
(
'id="pointerAdditionResultNotNull"'
,
str
(
line
))
is
not
None
:
CCR
.
nbPtrAddNotNull
[
vId
]
+=
1
if
re
.
search
(
'id="oppositeInnerCondition"'
,
str
(
line
))
is
not
None
:
CCR
.
nbOppoInnerCondition
[
vId
]
+=
1
logging
.
debug
(
'======== Variant '
+
variant
+
' - '
+
CCR
.
versions
[
vId
]
+
' ========'
)
logging
.
debug
(
' '
+
str
(
CCR
.
nbErrors
[
vId
])
+
' errors'
)
logging
.
debug
(
' '
+
str
(
CCR
.
nbWarnings
[
vId
])
+
' warnings'
)
logging
.
debug
(
' -- Details --'
)
logging
.
debug
(
' Memory leak: '
+
str
(
CCR
.
nbMemLeaks
[
vId
]))
logging
.
debug
(
' Possible null pointer deference: '
+
str
(
CCR
.
nbNullPtrs
[
vId
]))
logging
.
debug
(
' Uninitialized variable: '
+
str
(
CCR
.
nbUninitVars
[
vId
]))
logging
.
debug
(
' Undefined behaviour shifting: '
+
str
(
CCR
.
nbTooManyBitsShift
[
vId
]))
logging
.
debug
(
' Signed integer overflow: '
+
str
(
CCR
.
nbIntegerOverflow
[
vId
]))
logging
.
debug
(
''
)
logging
.
debug
(
' Printf formatting issue: '
+
str
(
CCR
.
nbInvalidPrintf
[
vId
]))
logging
.
debug
(
' Modulo result is predetermined: '
+
str
(
CCR
.
nbModuloAlways
[
vId
]))
logging
.
debug
(
' Opposite Condition -> dead code: '
+
str
(
CCR
.
nbOppoInnerCondition
[
vId
]))
logging
.
debug
(
' Wrong Scanf Nb Args: '
+
str
(
CCR
.
nbWrongScanfArg
[
vId
]))
logging
.
debug
(
''
)
vId
+=
1
HTML
.
CreateHtmlTestRow
(
'N/A'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
HTML
.
CreateHtmlTestRowCppCheckResults
(
CCR
)
logging
.
info
(
'
\u001B
[1m Static Code Analysis Pass
\u001B
[0m'
)
return
0
ci-scripts/docker/Dockerfile.cppcheck.xenial
0 → 100644
View file @
86881b14
FROM ubuntu:xenial AS oai-cppcheck
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
build-essential \
vim \
cppcheck
WORKDIR /oai-ran
COPY . .
WORKDIR /oai-ran/common/utils/T
RUN make
WORKDIR /oai-ran
RUN mkdir -p cmake_targets/log && \
cppcheck --enable=warning --force --xml --xml-version=2 \
-i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c \
--suppressions-list=ci-scripts/cppcheck_suppressions.list \
-I common/utils \
-I openair3/NAS/COMMON/UTIL \
-j`nproc` . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt
RUN egrep -c 'severity="error' cmake_targets/log/cppcheck.xml
RUN egrep -c 'severity="warning' cmake_targets/log/cppcheck.xml
RUN cat cmake_targets/log/cppcheck.xml
ci-scripts/main.py
View file @
86881b14
ci-scripts/reportBuildLocally.sh
View file @
86881b14
ci-scripts/xml_files/cppcheck.xml
0 → 100644
View file @
86881b14
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
CPPCHECK Analysis
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
000001
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000001"
>
<class>
Cppcheck_Analysis
</class>
<desc>
Static Code Analysis with cppcheck
</desc>
</testCase>
</testCaseList>
docker/Dockerfile.phySim.rhel8.2
0 → 100644
View file @
86881b14
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for RHEL8
#
#---------------------------------------------------------------------
FROM localhost/ran-build:develop AS phy-sim-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --phy_simulators --ninja --verbose-ci
#start from scratch for target executable
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-physim
RUN yum update -y && \
yum install -y --enablerepo="ubi-8-codeready-builder" \
lksctp-tools \
nettle \
atlas \
hostname \
sudo \
procps-ng \
net-tools \
iputils \
bc \
iproute \
libyaml && \
echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
WORKDIR /opt/oai-physim/targets/bin
COPY --from=phy-sim-build /oai-ran/targets/bin/dlsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_dlsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_prachsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_ulschsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/polartest.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/ulsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/ldpctest.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_dlschsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_pbchsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_pucchsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_ulsim.Rel15 .
COPY --from=phy-sim-build /oai-ran/targets/bin/smallblocktest.Rel15 .
WORKDIR /usr/local/lib/
COPY --from=phy-sim-build /oai-ran/targets/bin/libcoding.so .
COPY --from=phy-sim-build /lib64/liblapacke.so.3 .
COPY --from=phy-sim-build /lib64/libX11.so.6 .
COPY --from=phy-sim-build /lib64/libXpm.so.4 .
COPY --from=phy-sim-build /lib64/libxcb.so.1 .
COPY --from=phy-sim-build /lib64/libXau.so.6 .
COPY --from=phy-sim-build /lib64/libforms.so.2 .
COPY --from=phy-sim-build /lib64/libblas.so.3 .
COPY --from=phy-sim-build /lib64/liblapack.so.3 .
COPY --from=phy-sim-build /lib64/libexslt.so.0 .
COPY --from=phy-sim-build /lib64/libxslt.so.1 .
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libdfts.so .
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libSIMU.so .
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libldpc.so .
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libldpc_orig.so .
RUN ldconfig
#debug
#RUN ldd /opt/oai-physim/targets/bin/dlsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/nr_dlsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/nr_prachsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/nr_ulschsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/polartest.Rel15
#RUN ldd /opt/oai-physim/targets/bin/ulsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/ldpctest.Rel15
#RUN ldd /opt/oai-physim/targets/bin/nr_dlschsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/nr_pbchsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/nr_pucchsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/nr_ulsim.Rel15
#RUN ldd /opt/oai-physim/targets/bin/smallblocktest.Rel15
# Copy some executables
WORKDIR /usr/bin/
COPY --from=phy-sim-build /usr/bin/killall .
COPY --from=phy-sim-build /usr/bin/xmlstarlet .
COPY --from=phy-sim-build /usr/bin/svn .
# Copy the relevant configuration files for phySim
WORKDIR /opt/oai-physim/
COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/run_exec_autotests.bash /opt/oai-physim/cmake_targets/autotests/
COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/test_case_list.xml /opt/oai-physim/cmake_targets/autotests/
COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/tools/free_mem.bash /opt/oai-physim/cmake_targets/autotests/tools/
COPY --from=phy-sim-build /oai-ran/cmake_targets/tools/build_helper /opt/oai-physim/cmake_targets/tools/
COPY --from=phy-sim-build /oai-ran/cmake_targets/tools/test_helper /opt/oai-physim/cmake_targets/tools/
#CMD ["sleep", "infinity"]
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
86881b14
...
@@ -1705,6 +1705,7 @@ void mac_remove_nr_ue(module_id_t mod_id, rnti_t rnti)
...
@@ -1705,6 +1705,7 @@ void mac_remove_nr_ue(module_id_t mod_id, rnti_t rnti)
{
{
int
UE_id
;
int
UE_id
;
int
i
;
int
i
;
int
cc_id
;
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
mod_id
]
->
UE_info
;
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
mod_id
]
->
UE_info
;
for
(
i
=
0
;
i
<
MAX_MOBILES_PER_GNB
;
i
++
)
{
for
(
i
=
0
;
i
<
MAX_MOBILES_PER_GNB
;
i
++
)
{
...
@@ -1741,6 +1742,20 @@ void mac_remove_nr_ue(module_id_t mod_id, rnti_t rnti)
...
@@ -1741,6 +1742,20 @@ void mac_remove_nr_ue(module_id_t mod_id, rnti_t rnti)
rnti_to_remove_count
++
;
rnti_to_remove_count
++
;
if
(
pthread_mutex_unlock
(
&
rnti_to_remove_mutex
))
exit
(
1
);
if
(
pthread_mutex_unlock
(
&
rnti_to_remove_mutex
))
exit
(
1
);
}
}
/* clear RA process(es?) associated to the UE */
for
(
cc_id
=
0
;
cc_id
<
NFAPI_CC_MAX
;
cc_id
++
)
{
NR_COMMON_channels_t
*
cc
=
&
RC
.
nrmac
[
mod_id
]
->
common_channels
[
cc_id
];
for
(
i
=
0
;
i
<
NR_NB_RA_PROC_MAX
;
i
++
)
{
if
(
cc
->
ra
[
i
].
rnti
==
rnti
)
{
LOG_D
(
MAC
,
"free RA process %d for rnti %d
\n
"
,
i
,
rnti
);
/* is it enough? */
cc
->
ra
[
i
].
cfra
=
false
;
cc
->
ra
[
i
].
rnti
=
0
;
cc
->
ra
[
i
].
crnti
=
0
;
}
}
}
}
}
uint8_t
nr_get_tpc
(
int
target
,
uint8_t
cqi
,
int
incr
)
{
uint8_t
nr_get_tpc
(
int
target
,
uint8_t
cqi
,
int
incr
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment