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
12f7f823
Commit
12f7f823
authored
Jun 09, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop-NR_SA_F1AP_5GRECORDS
# Conflicts: # openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
parents
1b69c2a0
530b74dd
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
680 additions
and
257 deletions
+680
-257
ci-scripts/Jenkinsfile-gitlab
ci-scripts/Jenkinsfile-gitlab
+6
-13
ci-scripts/cls_containerize.py
ci-scripts/cls_containerize.py
+2
-0
ci-scripts/conf_files/rcc.band40.tm1.25PRB.FairScheduler.usrpb210.conf
...nf_files/rcc.band40.tm1.25PRB.FairScheduler.usrpb210.conf
+87
-87
ci-scripts/conf_files/rcc.band7.tm1.if4p5.lo.25PRB.usrpb210.conf
...pts/conf_files/rcc.band7.tm1.if4p5.lo.25PRB.usrpb210.conf
+93
-93
common/utils/system.c
common/utils/system.c
+70
-16
common/utils/system.h
common/utils/system.h
+8
-0
docker/Dockerfile.lteRU.rhel8.2
docker/Dockerfile.lteRU.rhel8.2
+99
-0
docker/Dockerfile.lteRU.ubuntu18
docker/Dockerfile.lteRU.ubuntu18
+94
-0
docker/scripts/enb_entrypoint.sh
docker/scripts/enb_entrypoint.sh
+2
-0
docker/scripts/enb_parameters.yaml
docker/scripts/enb_parameters.yaml
+88
-2
docker/scripts/generateTemplate.py
docker/scripts/generateTemplate.py
+6
-2
docker/scripts/lte_ru_entrypoint.sh
docker/scripts/lte_ru_entrypoint.sh
+62
-0
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
+18
-18
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+16
-6
targets/RT/USER/rt_wrapper.c
targets/RT/USER/rt_wrapper.c
+29
-20
No files found.
ci-scripts/Jenkinsfile-gitlab
View file @
12f7f823
...
...
@@ -30,8 +30,6 @@ def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
}
}
def
doFlexranCtrlTest
=
false
// Location of the executor node
def
nodeExecutor
=
params
.
nodeExecutor
...
...
@@ -66,9 +64,6 @@ pipeline {
echo
"Platform is ${env.TESTPLATFORM_OWNER}"
}
if
(
params
.
FlexRanRtcGitLabRepository_Credentials
!=
null
)
{
doFlexranCtrlTest
=
true
}
if
(
fileExists
(
"flexran"
))
{
sh
"rm -Rf flexran > /dev/null 2>&1"
}
...
...
@@ -141,15 +136,13 @@ pipeline {
// For the moment, there is no fail criteria. Just a notification of number of files that do not follow
sh
"./ci-scripts/checkCodingFormattingRules.sh"
}
if
(
doFlexranCtrlTest
&&
doMandatoryTests
)
{
// With Mosaic 5G being part of OSA and making all it's repositories public
// No need to pass credentials to clone flexran-rtc
if
(
doMandatoryTests
)
{
sh
"mkdir flexran"
dir
(
'flexran'
)
{
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.FlexRanRtcGitLabRepository_Credentials}"
,
usernameVariable:
'git_username'
,
passwordVariable:
'git_password'
]
])
{
sh
"git clone https://${git_username}:${git_password}@gitlab.eurecom.fr/flexran/flexran-rtc.git . > ../git_clone.log 2>&1"
sh
"git clone https://gitlab.eurecom.fr/flexran/flexran-rtc.git . > ../git_clone.log 2>&1"
sh
"git checkout develop >> ../git_clone.log 2>&1"
}
sh
"zip -r -qq flexran.zip ."
}
}
...
...
@@ -315,7 +308,7 @@ pipeline {
stages
{
stage
(
"Build Flexran Controller"
)
{
when
{
expression
{
do
FlexranCtrlTest
&&
do
MandatoryTests
}
expression
{
doMandatoryTests
}
}
steps
{
lock
(
vmResource
)
{
...
...
ci-scripts/cls_containerize.py
View file @
12f7f823
...
...
@@ -150,6 +150,8 @@ class Containerize():
imageNames
.
append
((
'oai-nr-ue'
,
'nrUE'
))
if
self
.
host
==
'Red Hat'
:
imageNames
.
append
((
'oai-physim'
,
'phySim'
))
if
self
.
host
==
'Ubuntu'
:
imageNames
.
append
((
'oai-lte-ru'
,
'lteRU'
))
if
len
(
imageNames
)
==
0
:
imageNames
.
append
((
'oai-enb'
,
'eNB'
))
...
...
ci-scripts/conf_files/rcc.band40.tm1.25PRB.FairScheduler.usrpb210.conf
View file @
12f7f823
ci-scripts/conf_files/rcc.band7.tm1.if4p5.lo.25PRB.usrpb210.conf
View file @
12f7f823
...
...
@@ -260,8 +260,8 @@ NETWORK_CONTROLLER :
FLEXRAN_AWAIT_RECONF
=
"no"
;
};
log_config
:
{
log_config
:
{
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
...
...
@@ -276,4 +276,4 @@ NETWORK_CONTROLLER :
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
};
common/utils/system.c
View file @
12f7f823
...
...
@@ -96,6 +96,51 @@ static void read_pipe(int p, char *b, int size) {
}
}
static
int
baseRunTimeCommand
(
char
*
cmd
)
{
FILE
*
fp
;
size_t
retSize
=
0
;
fp
=
popen
(
cmd
,
"r"
);
memset
(
cmd
,
1
,
sizeof
(
*
cmd
));
retSize
=
fread
(
cmd
,
1
,
sizeof
(
*
cmd
),
fp
);
fclose
(
fp
);
if
(
retSize
==
0
)
{
return
0
;
}
return
atoi
(
cmd
);
}
int
checkIfFedoraDistribution
(
void
)
{
char
cmd
[
200
];
memset
(
cmd
,
1
,
200
);
sprintf
(
cmd
,
"cat /etc/os-release | grep ID_LIKE | grep -ic fedora || true"
);
return
baseRunTimeCommand
(
cmd
);
}
int
checkIfGenericKernelOnFedora
(
void
)
{
char
cmd
[
200
];
memset
(
cmd
,
1
,
200
);
sprintf
(
cmd
,
"uname -a | grep -c rt || true"
);
return
(
1
-
baseRunTimeCommand
(
cmd
));
}
int
checkIfInsideContainer
(
void
)
{
char
cmd
[
200
];
int
res
=
0
;
memset
(
cmd
,
1
,
200
);
sprintf
(
cmd
,
"cat /proc/self/cgroup | egrep -c 'libpod|podman|kubepods' || true"
);
res
=
baseRunTimeCommand
(
cmd
);
if
(
res
>
0
)
return
1
;
else
return
0
;
}
/********************************************************************/
/* background process */
/********************************************************************/
...
...
@@ -200,12 +245,19 @@ void start_background_system(void) {
void
threadCreate
(
pthread_t
*
t
,
void
*
(
*
func
)(
void
*
),
void
*
param
,
char
*
name
,
int
affinity
,
int
priority
){
pthread_attr_t
attr
;
int
ret
;
int
settingPriority
=
1
;
ret
=
pthread_attr_init
(
&
attr
);
AssertFatal
(
ret
==
0
,
"ret: %d, errno: %d
\n
"
,
ret
,
errno
);
ret
=
pthread_attr_setdetachstate
(
&
attr
,
PTHREAD_CREATE_DETACHED
);
AssertFatal
(
ret
==
0
,
"ret: %d, errno: %d
\n
"
,
ret
,
errno
);
ret
=
pthread_attr_setinheritsched
(
&
attr
,
PTHREAD_EXPLICIT_SCHED
);
AssertFatal
(
ret
==
0
,
"ret: %d, errno: %d
\n
"
,
ret
,
errno
);
if
(
checkIfFedoraDistribution
())
if
(
checkIfGenericKernelOnFedora
())
if
(
checkIfInsideContainer
())
settingPriority
=
0
;
if
(
settingPriority
)
{
ret
=
pthread_attr_setschedpolicy
(
&
attr
,
SCHED_OAI
);
AssertFatal
(
ret
==
0
,
"ret: %d, errno: %d
\n
"
,
ret
,
errno
);
if
(
priority
<
sched_get_priority_min
(
SCHED_OAI
)
||
priority
>
sched_get_priority_max
(
SCHED_FIFO
))
{
...
...
@@ -223,6 +275,8 @@ void threadCreate(pthread_t* t, void * (*func)(void*), void * param, char* name,
sparam
.
sched_priority
=
priority
;
ret
=
pthread_attr_setschedparam
(
&
attr
,
&
sparam
);
AssertFatal
(
ret
==
0
,
"ret: %d, errno: %d
\n
"
,
ret
,
errno
);
}
ret
=
pthread_create
(
t
,
&
attr
,
func
,
param
);
AssertFatal
(
ret
==
0
,
"ret: %d, errno: %d
\n
"
,
ret
,
errno
);
...
...
common/utils/system.h
View file @
12f7f823
...
...
@@ -58,6 +58,14 @@ void thread_top_init(char *thread_name,
uint64_t
deadline
,
uint64_t
period
);
/****************************************************
* Functions to check system at runtime.
****************************************************/
int
checkIfFedoraDistribution
(
void
);
int
checkIfGenericKernelOnFedora
(
void
);
int
checkIfInsideContainer
(
void
);
#ifdef __cplusplus
}
#endif
...
...
docker/Dockerfile.lteRU.rhel8.2
0 → 100644
View file @
12f7f823
#/*
# * 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 ran-build:latest AS ru-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 --RU --ninja -w USRP --verbose-ci
RUN yum install -y python3-pip && \
pip3 install --ignore-installed pyyaml && \
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
#start from scratch for target executable
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-lte-ru
ENV TZ=Europe/Paris
RUN yum update -y && \
yum install -y --enablerepo="ubi-8-codeready-builder" \
tzdata \
atlas \
net-tools \
iputils \
iproute && \
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-lte-ru/bin
COPY --from=ru-build /oai-ran/targets/bin/oairu.Rel15 .
COPY --from=ru-build /oai-ran/docker/scripts/lte_ru_entrypoint.sh entrypoint.sh
WORKDIR /usr/local/lib/
COPY --from=ru-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/libparams_libconfig.so .
COPY --from=ru-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
# Copying from the ran-build image the USRP needed packages
COPY --from=ru-build /lib64/libconfig.so.9 /lib64
COPY --from=ru-build /lib64/libblas.so.3 /lib64
COPY --from=ru-build /lib64/liblapack.so.3 /lib64
COPY --from=ru-build /lib64/liblapacke.so.3 /lib64
COPY --from=ru-build /lib64/libboost_chrono.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_date_time.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_filesystem.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_program_options.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_serialization.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_thread.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_system.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_atomic.so.1.66.0 /lib64
COPY --from=ru-build /lib64/libboost_timer.so.1.66.0 /lib64
COPY --from=ru-build /usr/local/lib64/libuhd.so.4.0.0 /usr/local/lib64
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
ldconfig
# Copy the relevant configuration files for RRU
WORKDIR /opt/oai-lte-ru/etc
COPY --from=ru-build /oai-ran/docker/etc/rru* ./
WORKDIR /opt/oai-lte-ru
ENTRYPOINT ["/opt/oai-lte-ru/bin/entrypoint.sh"]
CMD ["/opt/oai-lte-ru/bin/oairu.Rel15", "-O", "/opt/oai-lte-ru/etc/rru.conf"]
docker/Dockerfile.lteRU.ubuntu18
0 → 100644
View file @
12f7f823
#/*
# * 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 Ubuntu 18.04
#
#---------------------------------------------------------------------
FROM ran-build:latest AS ru-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 --RU --ninja -w USRP --verbose-ci
RUN apt-get install -y python3-pip && \
pip3 install --ignore-installed pyyaml && \
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
#start from scratch for target executable
FROM ubuntu:bionic as oai-lte-ru
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
tzdata \
software-properties-common \
libblas3 \
libatlas3-base \
libconfig9 \
net-tools \
iputils-ping \
iproute2 && \
# Install UHD driver from ettus ppa
# At time of writing, it is 3.14
add-apt-repository ppa:ettusresearch/uhd --yes && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
python \
libusb-1.0-0 \
libuhd003 \
uhd-host && \
rm -rf /var/lib/apt/lists/*
WORKDIR /opt/oai-lte-ru/bin
COPY --from=ru-build /oai-ran/targets/bin/oairu.Rel15 .
COPY --from=ru-build /oai-ran/docker/scripts/lte_ru_entrypoint.sh entrypoint.sh
WORKDIR /usr/local/lib/
COPY --from=ru-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
COPY --from=ru-build /oai-ran/targets/bin/libparams_libconfig.so .
COPY --from=ru-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
ldconfig
# Copy the relevant configuration files for RRU
WORKDIR /opt/oai-lte-ru/etc
COPY --from=ru-build /oai-ran/docker/etc/rru* ./
WORKDIR /opt/oai-lte-ru
ENTRYPOINT ["/opt/oai-lte-ru/bin/entrypoint.sh"]
CMD ["/opt/oai-lte-ru/bin/oairu.Rel15", "-O", "/opt/oai-lte-ru/etc/rru.conf"]
docker/scripts/enb_entrypoint.sh
View file @
12f7f823
...
...
@@ -11,6 +11,8 @@ if [[ -v USE_FDD_DU ]]; then ln -s $PREFIX/etc/du.fdd.conf $PREFIX/etc/enb.conf;
if
[[
-v
USE_FDD_MONO
]]
;
then
ln
-s
$PREFIX
/etc/enb.fdd.conf
$PREFIX
/etc/enb.conf
;
fi
if
[[
-v
USE_TDD_MONO
]]
;
then
ln
-s
$PREFIX
/etc/enb.tdd.conf
$PREFIX
/etc/enb.conf
;
fi
if
[[
-v
USE_FDD_FAPI_RCC
]]
;
then
ln
-s
$PREFIX
/etc/rcc.nfapi.fdd.conf
$PREFIX
/etc/enb.conf
;
fi
if
[[
-v
USE_FDD_IF4P5_RCC
]]
;
then
ln
-s
$PREFIX
/etc/rcc.if4p5.fdd.conf
$PREFIX
/etc/enb.conf
;
fi
if
[[
-v
USE_TDD_IF4P5_RCC
]]
;
then
ln
-s
$PREFIX
/etc/rcc.if4p5.tdd.conf
$PREFIX
/etc/enb.conf
;
fi
if
[[
-v
USE_FDD_RRU
]]
;
then
ln
-s
$PREFIX
/etc/rru.fdd.conf
$PREFIX
/etc/enb.conf
;
fi
if
[[
-v
USE_TDD_RRU
]]
;
then
ln
-s
$PREFIX
/etc/rru.tdd.conf
$PREFIX
/etc/enb.conf
;
fi
...
...
docker/scripts/enb_parameters.yaml
View file @
12f7f823
...
...
@@ -25,7 +25,7 @@
dest_dir
:
docker/etc
-
configurations
:
-
filePrefix
:
cu
-
filePrefix
:
cu
.band7.tm1.25PRB
outputfilename
:
"
cu.fdd.conf"
config
:
-
key
:
Active_eNBs
...
...
@@ -68,7 +68,7 @@
-
key
:
ENB_IPV4_ADDRESS_FOR_X2C
env
:
"
@F1_CU_IP_ADDRESS@"
-
filePrefix
:
du
-
filePrefix
:
du
.band7.tm1.25PRB
outputfilename
:
"
du.fdd.conf"
config
:
-
key
:
Active_eNBs
...
...
@@ -248,3 +248,89 @@
-
key
:
ENB_IPV4_ADDRESS_FOR_X2C
env
:
"
@F1_CU_IP_ADDRESS@"
-
filePrefix
:
"
rcc.band7.tm1.if4p5.lo.25PRB"
outputfilename
:
"
rcc.if4p5.fdd.conf"
config
:
-
key
:
Active_eNBs
env
:
"
@ENB_NAME@"
-
key
:
eNB_name
env
:
"
@ENB_NAME@"
-
key
:
plmn_list
env
:
mcc
:
"
@MCC@"
mnc
:
"
@MNC@"
mnc_length
:
"
@MNC_LENGTH@"
-
key
:
tracking_area_code
env
:
"
@TAC@"
-
key
:
eutra_band
env
:
"
@UTRA_BAND_ID@"
-
key
:
downlink_frequency
env
:
"
@DL_FREQUENCY_IN_MHZ@000000"
-
key
:
uplink_frequency_offset
env
:
"
@UL_FREQUENCY_OFFSET_IN_MHZ@000000"
-
key
:
Nid_cell
env
:
"
@NID_CELL@"
-
key
:
N_RB_DL
env
:
"
@NB_PRB@"
-
key
:
ipv4
env
:
"
@MME_S1C_IP_ADDRESS@"
-
key
:
ENB_INTERFACE_NAME_FOR_S1_MME
env
:
"
@RCC_IF_NAME@"
-
key
:
ENB_IPV4_ADDRESS_FOR_S1_MME
env
:
"
@RCC_S1C_IP_ADDRESS@"
-
key
:
ENB_INTERFACE_NAME_FOR_S1U
env
:
"
@RCC_IF_NAME@"
-
key
:
ENB_IPV4_ADDRESS_FOR_S1U
env
:
"
@RCC_IP_ADDRESS@"
-
key
:
ENB_IPV4_ADDRESS_FOR_X2C
env
:
"
@RCC_IP_ADDRESS@"
-
key
:
local_if_name
env
:
"
@IF4P5_IF_NAME@"
-
key
:
remote_address
env
:
"
@IF4P5_RRU_IP_ADDRESS@"
-
key
:
local_address
env
:
"
@IF4P5_RCC_IP_ADDRESS@"
-
filePrefix
:
"
rcc.band40.tm1.25PRB"
outputfilename
:
"
rcc.if4p5.tdd.conf"
config
:
-
key
:
Active_eNBs
env
:
"
@ENB_NAME@"
-
key
:
eNB_name
env
:
"
@ENB_NAME@"
-
key
:
plmn_list
env
:
mcc
:
"
@MCC@"
mnc
:
"
@MNC@"
mnc_length
:
"
@MNC_LENGTH@"
-
key
:
tracking_area_code
env
:
"
@TAC@"
-
key
:
eutra_band
env
:
"
@UTRA_BAND_ID@"
-
key
:
downlink_frequency
env
:
"
@DL_FREQUENCY_IN_MHZ@000000"
-
key
:
uplink_frequency_offset
env
:
"
@UL_FREQUENCY_OFFSET_IN_MHZ@000000"
-
key
:
Nid_cell
env
:
"
@NID_CELL@"
-
key
:
N_RB_DL
env
:
"
@NB_PRB@"
-
key
:
ipv4
env
:
"
@MME_S1C_IP_ADDRESS@"
-
key
:
ENB_INTERFACE_NAME_FOR_S1_MME
env
:
"
@RCC_IF_NAME@"
-
key
:
ENB_IPV4_ADDRESS_FOR_S1_MME
env
:
"
@RCC_S1C_IP_ADDRESS@"
-
key
:
ENB_INTERFACE_NAME_FOR_S1U
env
:
"
@RCC_IF_NAME@"
-
key
:
ENB_IPV4_ADDRESS_FOR_S1U
env
:
"
@RCC_IP_ADDRESS@"
-
key
:
ENB_IPV4_ADDRESS_FOR_X2C
env
:
"
@RCC_IP_ADDRESS@"
-
key
:
local_if_name
env
:
"
@IF4P5_IF_NAME@"
-
key
:
remote_address
env
:
"
@IF4P5_RRU_IP_ADDRESS@"
-
key
:
local_address
env
:
"
@IF4P5_RCC_IP_ADDRESS@"
docker/scripts/generateTemplate.py
View file @
12f7f823
...
...
@@ -39,20 +39,24 @@ def main():
for
config
in
data
[
1
][
"configurations"
]:
filePrefix
=
config
[
"filePrefix"
]
outputfilename
=
config
[
"outputfilename"
]
print
(
'================================================'
)
print
(
'filePrefix = '
+
filePrefix
)
print
(
'outputfilename = '
+
outputfilename
)
for
inputfile
in
dir
:
if
inputfile
.
find
(
filePrefix
)
>=
0
:
prefix_outputfile
=
{
"cu"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"du"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
prefix_outputfile
=
{
"cu
.band7.tm1.25PRB
"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"du
.band7.tm1.25PRB
"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"rru.fdd"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"rru.tdd"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"enb.band7.tm1.25PRB.usrpb210"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"enb.band40.tm1.25PRB.FairScheduler.usrpb210"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"rcc.band7.tm1.nfapi"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"rcc.band7.tm1.if4p5.lo.25PRB"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"rcc.band40.tm1.25PRB"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"ue.nfapi"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
,
"ue_sim_ci"
:
f'
{
data
[
0
][
"paths"
][
"dest_dir"
]
}
/
{
outputfilename
}
'
}
print
(
'inputfile = '
+
inputfile
)
if
filePrefix
in
prefix_outputfile
:
outputfile1
=
prefix_outputfile
[
filePrefix
]
...
...
docker/scripts/lte_ru_entrypoint.sh
0 → 100755
View file @
12f7f823
#!/bin/bash
set
-euo
pipefail
PREFIX
=
/opt/oai-lte-ru
# Based another env var, pick one template to use
if
[[
-v
USE_FDD_RRU
]]
;
then
ln
-s
$PREFIX
/etc/rru.fdd.conf
$PREFIX
/etc/rru.conf
;
fi
if
[[
-v
USE_TDD_RRU
]]
;
then
ln
-s
$PREFIX
/etc/rru.tdd.conf
$PREFIX
/etc/rru.conf
;
fi
# Only this template will be manipulated
CONFIG_FILES
=
`
ls
$PREFIX
/etc/rru.conf
||
true
`
for
c
in
${
CONFIG_FILES
}
;
do
# grep variable names (format: ${VAR}) from template to be rendered
VARS
=
$(
grep
-oP
'@[a-zA-Z0-9_]+@'
${
c
}
|
sort
|
uniq
| xargs
)
# create sed expressions for substituting each occurrence of ${VAR}
# with the value of the environment variable "VAR"
EXPRESSIONS
=
""
for
v
in
${
VARS
}
;
do
NEW_VAR
=
`
echo
$v
|
sed
-e
"s#@##g"
`
if
[[
"
${
!NEW_VAR
}
x"
==
"x"
]]
;
then
echo
"Error: Environment variable '
${
NEW_VAR
}
' is not set."
\
"Config file '
$(
basename
$c
)
' requires all of
$VARS
."
exit
1
fi
EXPRESSIONS
=
"
${
EXPRESSIONS
}
;s|
${
v
}
|
${
!NEW_VAR
}
|g"
done
EXPRESSIONS
=
"
${
EXPRESSIONS
#
';'
}
"
# render template and inline replace config file
sed
-i
"
${
EXPRESSIONS
}
"
${
c
}
done
# Load the USRP binaries
if
[[
-v
USE_B2XX
]]
;
then
/usr/lib/uhd/utils/uhd_images_downloader.py
-t
b2xx
elif
[[
-v
USE_X3XX
]]
;
then
/usr/lib/uhd/utils/uhd_images_downloader.py
-t
x3xx
elif
[[
-v
USE_N3XX
]]
;
then
/usr/lib/uhd/utils/uhd_images_downloader.py
-t
n3xx
fi
echo
"=================================="
echo
"== Starting eNB soft modem"
if
[[
-v
USE_ADDITIONAL_OPTIONS
]]
;
then
echo
"Additional option(s):
${
USE_ADDITIONAL_OPTIONS
}
"
new_args
=()
while
[[
$#
-gt
0
]]
;
do
new_args+
=(
"
$1
"
)
shift
done
for
word
in
${
USE_ADDITIONAL_OPTIONS
}
;
do
new_args+
=(
"
$word
"
)
done
echo
"
${
new_args
[@]
}
"
exec
"
${
new_args
[@]
}
"
else
echo
"
$@
"
exec
"
$@
"
fi
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
View file @
12f7f823
...
...
@@ -504,7 +504,7 @@ bool pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, uint8_t gNB_id, UE_nr_rxtx_proc_
if
(
pucch_resource_set
!=
MAX_NB_OF_PUCCH_RESOURCE_SETS
)
{
pucch_resource_indicator
=
0
;
/* get the first resource of the set */
pucch_resource_id
=
mac
->
ULbwp
[
bwp_id
-
1
]
->
bwp_Dedicated
->
pucch_Config
->
choice
.
setup
->
resourceSetToAddModList
->
list
.
array
[
pucch_resource_set
]
->
resourceList
.
list
.
array
[
pucch_resource_indicator
][
0
];
/* get the first resource of the set */
pucch_resource_id
=
mac
->
ULbwp
[
bwp_id
-
1
]
->
bwp_Dedicated
->
pucch_Config
->
choice
.
setup
->
resourceSetToAddModList
->
list
.
array
[
pucch_resource_set
]
->
resourceList
.
list
.
array
[
pucch_resource_indicator
][
0
];
}
else
{
LOG_W
(
PHY
,
"PUCCH no resource set found for CSI at line %d in function %s of file %s
\n
"
,
LINE_FILE
,
__func__
,
FILE_NAME
);
...
...
targets/RT/USER/lte-ue.c
View file @
12f7f823
...
...
@@ -32,6 +32,7 @@
#include "lte-softmodem.h"
#include "rt_wrapper.h"
#include "system.h"
#include "LAYER2/MAC/mac.h"
#include "RRC/LTE/rrc_extern.h"
...
...
@@ -230,7 +231,14 @@ void init_thread(int sched_runtime,
}
#else
int
settingPriority
=
1
;
if
(
checkIfFedoraDistribution
())
if
(
checkIfGenericKernelOnFedora
())
if
(
checkIfInsideContainer
())
settingPriority
=
0
;
if
(
settingPriority
)
{
if
(
CPU_COUNT
(
cpuset
)
>
0
)
AssertFatal
(
0
==
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
cpuset
),
""
);
...
...
@@ -238,6 +246,8 @@ void init_thread(int sched_runtime,
sp
.
sched_priority
=
sched_fifo
;
AssertFatal
(
pthread_setschedparam
(
pthread_self
(),
SCHED_FIFO
,
&
sp
)
==
0
,
"Can't set thread priority, Are you root?
\n
"
);
}
/* Check the actual affinity mask assigned to the thread */
cpu_set_t
*
cset
=
CPU_ALLOC
(
CPU_SETSIZE
);
...
...
targets/RT/USER/rt_wrapper.c
View file @
12f7f823
...
...
@@ -43,6 +43,7 @@
#include <getopt.h>
#include <sys/sysinfo.h>
#include "rt_wrapper.h"
#include "system.h"
#include <errno.h>
#include <common/utils/msc/msc.h>
...
...
@@ -294,6 +295,7 @@ void thread_top_init(char *thread_name,
struct
sched_param
sparam
;
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
settingPriority
=
1
;
/* Set affinity mask to include CPUs 2 to MAX_CPUS */
/* CPU 0 is reserved for UHD threads */
...
...
@@ -340,9 +342,15 @@ void thread_top_init(char *thread_name,
}
}
if
(
checkIfFedoraDistribution
())
if
(
checkIfGenericKernelOnFedora
())
if
(
checkIfInsideContainer
())
settingPriority
=
0
;
if
(
settingPriority
)
{
memset
(
&
sparam
,
0
,
sizeof
(
sparam
));
sparam
.
sched_priority
=
sched_get_priority_max
(
SCHED_FIFO
);
policy
=
SCHED_FIFO
;
policy
=
SCHED_FIFO
;
s
=
pthread_setschedparam
(
pthread_self
(),
policy
,
&
sparam
);
if
(
s
!=
0
)
{
...
...
@@ -364,6 +372,7 @@ void thread_top_init(char *thread_name,
(
policy
==
SCHED_OTHER
)
?
"SCHED_OTHER"
:
"???"
,
sparam
.
sched_priority
,
cpu_affinity
);
}
#endif //LOW_LATENCY
...
...
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