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
lizhongxiao
OpenXG-RAN
Commits
0ae01780
Commit
0ae01780
authored
Feb 02, 2018
by
Xu Bo
Committed by
tengjianliang
Feb 02, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix withS1 issue
parent
75e27a68
Changes
23
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
12911 additions
and
3097 deletions
+12911
-3097
cmake_targets/tools/init_nas_s1
cmake_targets/tools/init_nas_s1
+7
-7
common/utils/itti/intertask_interface_dump.c
common/utils/itti/intertask_interface_dump.c
+29
-0
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+5
-2
openair2/ENB_APP/enb_app.c
openair2/ENB_APP/enb_app.c
+31
-0
openair2/LAYER2/MAC/proto.h
openair2/LAYER2/MAC/proto.h
+5
-2
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+3047
-3043
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
+5
-4
openair2/NETWORK_DRIVER/UE_IP/common.c
openair2/NETWORK_DRIVER/UE_IP/common.c
+0
-1
openair2/RRC/LITE/rrc_UE.c
openair2/RRC/LITE/rrc_UE.c
+32
-1
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+31
-0
openair2/UTIL/LOG/log.c
openair2/UTIL/LOG/log.c
+4
-4
openair3/GTPV1-U/gtpv1u_eNB.c
openair3/GTPV1-U/gtpv1u_eNB.c
+31
-1
openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
+9458
-1
openair3/NAS/UE/ESM/esm_ebr_context.c
openair3/NAS/UE/ESM/esm_ebr_context.c
+22
-6
openair3/NAS/UE/nas_ue_task.c
openair3/NAS/UE/nas_ue_task.c
+30
-1
openair3/S1AP/s1ap_eNB.c
openair3/S1AP/s1ap_eNB.c
+31
-1
openair3/SCTP/sctp_eNB_task.c
openair3/SCTP/sctp_eNB_task.c
+31
-1
openair3/UDP/udp_eNB_task.c
openair3/UDP/udp_eNB_task.c
+32
-1
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+2
-2
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+1
-3
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+48
-6
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+22
-8
targets/RT/USER/rt_wrapper.c
targets/RT/USER/rt_wrapper.c
+7
-2
No files found.
cmake_targets/tools/init_nas_s1
View file @
0ae01780
...
@@ -52,20 +52,20 @@ load_module ../../targets/bin/ue_ip.ko
...
@@ -52,20 +52,20 @@ load_module ../../targets/bin/ue_ip.ko
if
[
"
$1
"
=
"UE"
]
;
then
if
[
"
$1
"
=
"UE"
]
;
then
echo
"bring up
$LTEIF
interface for UE"
echo
"bring up
$LTEIF
interface for UE"
ifconfig
$LTEIF
up
sudo
ifconfig
$LTEIF
up
fi
fi
ip route flush cache
sudo
ip route flush cache
sleep
1
sleep
1
sysctl
-w
net.ipv4.conf.all.log_martians
=
1
s
udo
s
ysctl
-w
net.ipv4.conf.all.log_martians
=
1
echo
"Disabling reverse path filtering"
echo
"Disabling reverse path filtering"
sysctl
-w
net.ipv4.conf.all.rp_filter
=
0
s
udo
s
ysctl
-w
net.ipv4.conf.all.rp_filter
=
0
ip route flush cache
sudo
ip route flush cache
# Check table 200 lte in /etc/iproute2/rt_tables
# Check table 200 lte in /etc/iproute2/rt_tables
fgrep lte /etc/iproute2/rt_tables
>
/dev/null
fgrep lte /etc/iproute2/rt_tables
>
/dev/null
if
[
$?
-ne
0
]
;
then
if
[
$?
-ne
0
]
;
then
echo
"200 lte "
>>
/etc/iproute2/rt_tables
echo
"200 lte "
>>
/etc/iproute2/rt_tables
fi
fi
ip rule add fwmark 1 table lte
sudo
ip rule add fwmark 1 table lte
ip route add default dev
$LTEIF
table lte
sudo
ip route add default dev
$LTEIF
table lte
common/utils/itti/intertask_interface_dump.c
View file @
0ae01780
...
@@ -481,6 +481,35 @@ static void *itti_dump_socket(void *arg_p)
...
@@ -481,6 +481,35 @@ static void *itti_dump_socket(void *arg_p)
#ifdef RTAI
#ifdef RTAI
struct
timeval
timeout
;
struct
timeval
timeout
;
#endif
#endif
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
10
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_setaffinity_np"
);
exit_fun
(
"rrc Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_getaffinity_np"
);
exit_fun
(
"rrc Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
10
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_10"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of itti_dump_socket to CPU %s!
\n
"
,
cpu_affinity
);
ITTI_DUMP_DEBUG
(
0x2
,
" Creating TCP dump socket on port %u
\n
"
,
ITTI_PORT
);
ITTI_DUMP_DEBUG
(
0x2
,
" Creating TCP dump socket on port %u
\n
"
,
ITTI_PORT
);
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
0ae01780
...
@@ -5412,8 +5412,11 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
...
@@ -5412,8 +5412,11 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
subframe_tx
,
subframe_tx
,
subframe_select
(
&
ue
->
frame_parms
,
subframe_tx
),
subframe_select
(
&
ue
->
frame_parms
,
subframe_tx
),
eNB_id
,
eNB_id
,
0
/*FIXME CC_id*/
);
0
/*FIXME CC_id*/
#ifdef UE_EXPANSION_SIM2
,
0
#endif
);
if
(
ret
==
CONNECTION_LOST
)
{
if
(
ret
==
CONNECTION_LOST
)
{
LOG_E
(
PHY
,
"[UE %d] Frame %d, subframe %d RRC Connection lost, returning to PRACH
\n
"
,
ue
->
Mod_id
,
LOG_E
(
PHY
,
"[UE %d] Frame %d, subframe %d RRC Connection lost, returning to PRACH
\n
"
,
ue
->
Mod_id
,
frame_rx
,
subframe_tx
);
frame_rx
,
subframe_tx
);
...
...
openair2/ENB_APP/enb_app.c
View file @
0ae01780
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
EMAIL : Lionel.Gauthier@eurecom.fr and Navid Nikaein
EMAIL : Lionel.Gauthier@eurecom.fr and Navid Nikaein
*/
*/
#define _GNU_SOURCE
#include <string.h>
#include <string.h>
#include <stdio.h>
#include <stdio.h>
...
@@ -301,6 +302,36 @@ void *eNB_app_task(void *args_p)
...
@@ -301,6 +302,36 @@ void *eNB_app_task(void *args_p)
int
result
;
int
result
;
/* for no gcc warnings */
/* for no gcc warnings */
(
void
)
instance
;
(
void
)
instance
;
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
5
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_setaffinity_np"
);
exit_fun
(
"rrc Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_getaffinity_np"
);
exit_fun
(
"rrc Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
5
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_5"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of eNB_app_task to CPU %s!
\n
"
,
cpu_affinity
);
itti_mark_task_ready
(
TASK_ENB_APP
);
itti_mark_task_ready
(
TASK_ENB_APP
);
...
...
openair2/LAYER2/MAC/proto.h
View file @
0ae01780
...
@@ -661,8 +661,11 @@ UE_L2_STATE_t ue_scheduler(const module_id_t module_idP,
...
@@ -661,8 +661,11 @@ UE_L2_STATE_t ue_scheduler(const module_id_t module_idP,
const
frame_t
txFrameP
,
const
frame_t
txFrameP
,
const
sub_frame_t
txSubframe
,
const
sub_frame_t
txSubframe
,
const
lte_subframe_t
direction
,
const
lte_subframe_t
direction
,
const
uint8_t
eNB_index
,
const
int
CC_id
);
const
uint8_t
eNB_index
,
const
int
CC_id
#ifdef UE_EXPANSION_SIM2
,
const
uint8_t
thread_id
#endif
);
/*! \fn int cba_access(module_id_t module_idP,frame_t frameP,sub_frame_t subframe, uint8_t eNB_index,uint16_t buflen);
/*! \fn int cba_access(module_id_t module_idP,frame_t frameP,sub_frame_t subframe, uint8_t eNB_index,uint16_t buflen);
\brief determine whether to use cba resource to transmit or not
\brief determine whether to use cba resource to transmit or not
\param[in] Mod_id instance of the UE
\param[in] Mod_id instance of the UE
...
...
openair2/LAYER2/MAC/ue_procedures.c
View file @
0ae01780
This diff is collapsed.
Click to expand it.
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
View file @
0ae01780
...
@@ -590,7 +590,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
...
@@ -590,7 +590,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
//ctxt.rnti = pdcp_eNB_UE_instance_to_rnti[pdcp_eNB_UE_instance_to_rnti_index];
//ctxt.rnti = pdcp_eNB_UE_instance_to_rnti[pdcp_eNB_UE_instance_to_rnti_index];
ctxt
.
rnti
=
pdcp_eNB_UE_instance_to_rnti
[
pdcp_read_header_g
.
rb_id
/
maxDRB
];
ctxt
.
rnti
=
pdcp_eNB_UE_instance_to_rnti
[
pdcp_read_header_g
.
rb_id
/
maxDRB
];
}
else
{
}
else
{
ctxt
.
module_id
=
0
;
// ctxt.module_id = 0;
ctxt
.
module_id
=
pdcp_read_header_g
.
inst
-
1
;
rab_id
=
pdcp_read_header_g
.
rb_id
%
maxDRB
;
rab_id
=
pdcp_read_header_g
.
rb_id
%
maxDRB
;
ctxt
.
rnti
=
pdcp_UE_UE_module_id_to_rnti
[
ctxt
.
module_id
];
ctxt
.
rnti
=
pdcp_UE_UE_module_id_to_rnti
[
ctxt
.
module_id
];
}
}
...
@@ -702,8 +703,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
...
@@ -702,8 +703,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
len
,
len
,
nas_nlh_rx
->
nlmsg_len
-
sizeof
(
struct
nlmsghdr
),
nas_nlh_rx
->
nlmsg_len
-
sizeof
(
struct
nlmsghdr
),
pdcp_read_header_g
.
rb_id
);
pdcp_read_header_g
.
rb_id
);
#endif
LOG_
D
(
PDCP
,
"[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB %u]
\n
"
,
LOG_
E
(
PDCP
,
"[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB %u]
\n
"
,
ctxt
.
frame
,
ctxt
.
frame
,
pdcp_read_header_g
.
inst
,
pdcp_read_header_g
.
inst
,
pdcp_read_header_g
.
rb_id
,
pdcp_read_header_g
.
rb_id
,
...
@@ -711,7 +712,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
...
@@ -711,7 +712,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
ctxt
.
module_id
,
ctxt
.
module_id
,
ctxt
.
rnti
,
ctxt
.
rnti
,
rab_id
);
rab_id
);
#endif
//
#endif
MSC_LOG_RX_MESSAGE
(
MSC_LOG_RX_MESSAGE
(
(
ctxt_pP
->
enb_flag
==
ENB_FLAG_YES
)
?
MSC_PDCP_ENB
:
MSC_PDCP_UE
,
(
ctxt_pP
->
enb_flag
==
ENB_FLAG_YES
)
?
MSC_PDCP_ENB
:
MSC_PDCP_UE
,
(
ctxt_pP
->
enb_flag
==
ENB_FLAG_YES
)
?
MSC_IP_ENB
:
MSC_IP_UE
,
(
ctxt_pP
->
enb_flag
==
ENB_FLAG_YES
)
?
MSC_IP_ENB
:
MSC_IP_UE
,
...
...
openair2/NETWORK_DRIVER/UE_IP/common.c
View file @
0ae01780
...
@@ -278,7 +278,6 @@ ue_ip_common_ip2wireless(
...
@@ -278,7 +278,6 @@ ue_ip_common_ip2wireless(
pdcph
.
inst
=
instP
;
pdcph
.
inst
=
instP
;
bytes_wrote
=
ue_ip_netlink_send
((
char
*
)
&
pdcph
,
UE_IP_PDCPH_SIZE
);
bytes_wrote
=
ue_ip_netlink_send
((
char
*
)
&
pdcph
,
UE_IP_PDCPH_SIZE
);
#ifdef OAI_DRV_DEBUG_SEND
#ifdef OAI_DRV_DEBUG_SEND
printk
(
"[UE_IP_DRV][%s] Wrote %d bytes (header for %d byte skb) to PDCP via netlink
\n
"
,
__FUNCTION__
,
printk
(
"[UE_IP_DRV][%s] Wrote %d bytes (header for %d byte skb) to PDCP via netlink
\n
"
,
__FUNCTION__
,
...
...
openair2/RRC/LITE/rrc_UE.c
View file @
0ae01780
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
#define RRC_UE
#define RRC_UE
#define RRC_UE_C
#define RRC_UE_C
#define _GNU_SOURCE
#include "assertions.h"
#include "assertions.h"
#include "hashtable.h"
#include "hashtable.h"
#include "asn1_conversions.h"
#include "asn1_conversions.h"
...
@@ -4262,6 +4262,37 @@ void *rrc_ue_task( void *args_p )
...
@@ -4262,6 +4262,37 @@ void *rrc_ue_task( void *args_p )
SRB_INFO
*
srb_info_p
;
SRB_INFO
*
srb_info_p
;
protocol_ctxt_t
ctxt
;
protocol_ctxt_t
ctxt
;
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
17
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc_ue pthread_setaffinity_np"
);
exit_fun
(
"rrc_ue Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc_ue pthread_getaffinity_np"
);
exit_fun
(
"rrc_ue Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
17
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_17"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of rrc_ue_task to CPU %s!
\n
"
,
cpu_affinity
);
itti_mark_task_ready
(
TASK_RRC_UE
);
itti_mark_task_ready
(
TASK_RRC_UE
);
while
(
1
)
{
while
(
1
)
{
...
...
openair2/RRC/LITE/rrc_eNB.c
View file @
0ae01780
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
*/
*/
#define RRC_ENB
#define RRC_ENB
#define RRC_ENB_C
#define RRC_ENB_C
#define _GNU_SOURCE
#include "defs.h"
#include "defs.h"
#include "extern.h"
#include "extern.h"
...
@@ -4940,6 +4941,36 @@ rrc_enb_task(
...
@@ -4940,6 +4941,36 @@ rrc_enb_task(
int
CC_id
;
int
CC_id
;
protocol_ctxt_t
ctxt
;
protocol_ctxt_t
ctxt
;
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
9
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_setaffinity_np"
);
exit_fun
(
"rrc Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_getaffinity_np"
);
exit_fun
(
"rrc Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
9
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_9"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of rrc_enb_task to CPU %s!
\n
"
,
cpu_affinity
);
itti_mark_task_ready
(
TASK_RRC_ENB
);
itti_mark_task_ready
(
TASK_RRC_ENB
);
LOG_I
(
RRC
,
"Entering main loop of RRC message task
\n
"
);
LOG_I
(
RRC
,
"Entering main loop of RRC message task
\n
"
);
while
(
1
)
{
while
(
1
)
{
...
...
openair2/UTIL/LOG/log.c
View file @
0ae01780
...
@@ -1092,7 +1092,7 @@ void logRecord_mt(const char *file, const char *func, int line, int comp,
...
@@ -1092,7 +1092,7 @@ void logRecord_mt(const char *file, const char *func, int line, int comp,
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
}
}
if
(
(
g_log
->
flag
&
FLAG_THREAD
)
||
(
c
->
flag
&
FLAG_THREAD
)
)
{
//
if ( (g_log->flag & FLAG_THREAD) || (c->flag & FLAG_THREAD) ) {
# define THREAD_NAME_LEN 128
# define THREAD_NAME_LEN 128
char
threadname
[
THREAD_NAME_LEN
];
char
threadname
[
THREAD_NAME_LEN
];
if
(
pthread_getname_np
(
pthread_self
(),
threadname
,
THREAD_NAME_LEN
)
!=
0
)
if
(
pthread_getname_np
(
pthread_self
(),
threadname
,
THREAD_NAME_LEN
)
!=
0
)
...
@@ -1103,20 +1103,20 @@ void logRecord_mt(const char *file, const char *func, int line, int comp,
...
@@ -1103,20 +1103,20 @@ void logRecord_mt(const char *file, const char *func, int line, int comp,
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
}
}
# undef THREAD_NAME_LEN
# undef THREAD_NAME_LEN
}
//
}
if
(
(
g_log
->
flag
&
FLAG_FUNCT
)
||
(
c
->
flag
&
FLAG_FUNCT
)
)
{
if
(
(
g_log
->
flag
&
FLAG_FUNCT
)
||
(
c
->
flag
&
FLAG_FUNCT
)
)
{
len
+=
snprintf
(
&
log_buffer
[
len
],
MAX_LOG_TOTAL
-
len
,
"[%s] "
,
len
+=
snprintf
(
&
log_buffer
[
len
],
MAX_LOG_TOTAL
-
len
,
"[%s] "
,
func
);
func
);
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
}
}
#if 0
if ( (g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) {
if ( (g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) {
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s:%d]",
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s:%d]",
file, line);
file, line);
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
}
}
#endif
len
+=
vsnprintf
(
&
log_buffer
[
len
],
MAX_LOG_TOTAL
-
len
,
format
,
args
);
len
+=
vsnprintf
(
&
log_buffer
[
len
],
MAX_LOG_TOTAL
-
len
,
format
,
args
);
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
if
(
len
>
MAX_LOG_TOTAL
)
len
=
MAX_LOG_TOTAL
;
log_end
=
log_buffer
+
len
;
log_end
=
log_buffer
+
len
;
...
...
openair3/GTPV1-U/gtpv1u_eNB.c
View file @
0ae01780
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
* \company Eurecom
* \company Eurecom
* \email: lionel.gauthier@eurecom.fr
* \email: lionel.gauthier@eurecom.fr
*/
*/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdio.h>
#include <errno.h>
#include <errno.h>
...
@@ -1005,7 +1006,36 @@ void *gtpv1u_eNB_task(void *args)
...
@@ -1005,7 +1006,36 @@ void *gtpv1u_eNB_task(void *args)
int
rc
=
0
;
int
rc
=
0
;
instance_t
instance
;
instance_t
instance
;
//const char *msg_name_p;
//const char *msg_name_p;
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
12
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"gtpv1u pthread_setaffinity_np"
);
exit_fun
(
"gtpv1u Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"gtpv1u pthread_getaffinity_np"
);
exit_fun
(
"gtpv1u Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
12
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_12"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of gtpv1u_task to CPU %s!
\n
"
,
cpu_affinity
);
rc
=
gtpv1u_eNB_init
();
rc
=
gtpv1u_eNB_init
();
AssertFatal
(
rc
==
0
,
"gtpv1u_eNB_init Failed"
);
AssertFatal
(
rc
==
0
,
"gtpv1u_eNB_init Failed"
);
itti_mark_task_ready
(
TASK_GTPV1_U
);
itti_mark_task_ready
(
TASK_GTPV1_U
);
...
...
openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
View file @
0ae01780
This diff is collapsed.
Click to expand it.
openair3/NAS/UE/ESM/esm_ebr_context.c
View file @
0ae01780
...
@@ -274,13 +274,29 @@ int esm_ebr_context_create(
...
@@ -274,13 +274,29 @@ int esm_ebr_context_create(
res
=
sprintf
(
command_line
,
res
=
sprintf
(
command_line
,
"ifconfig oip%d %s netmask %s broadcast %s up && "
"ifconfig oip%d %s netmask %s broadcast %s up && "
"ip rule add from %s/32 table %d && "
// "ip rule add from %s/32 table %d && "
"ip rule add to %s/32 table %d && "
// "ip rule add to %s/32 table %d && "
"ip route add default dev oip%d table %d"
,
// "ip route add default dev oip%d table %d",
"ip rule add from %s/24 table %d prio %d && "
"ip rule add to %s/24 table %d prio %d && "
#ifdef UE_EXPANSION_SIM2
"ip route add default dev oip%d table %d &&"
"sysctl net.ipv4.conf.oip%d.rp_filter=0"
,
#else
//"ip route add default dev oip%d table %d",
"ip route add table %d 192.168.200.0/24 dev oip%d proto kernel scope link && "
"ip route add default dev oip%d table %d && "
,
"sysctl net.ipv4.conf.oip%d.rp_filter=0"
,
#endif
ueid
+
1
,
ipv4_addr
,
netmask
,
broadcast
,
ueid
+
1
,
ipv4_addr
,
netmask
,
broadcast
,
ipv4_addr
,
ueid
+
201
,
ipv4_addr
,
201
,
201
,
ipv4_addr
,
ueid
+
201
,
ipv4_addr
,
201
,
201
,
ueid
+
1
,
ueid
+
201
);
#ifdef UE_EXPANSION_SIM2
ueid
+
1
,
201
,
ueid
+
1
);
#else
ueid
+
201
,
ueid
+
1
,
ueid
+
1
,
ueid
+
201
,
ueid
+
1
);
#endif
if
(
res
<
0
)
{
if
(
res
<
0
)
{
LOG_TRACE
(
WARNING
,
"ESM-PROC - Failed to system command string"
);
LOG_TRACE
(
WARNING
,
"ESM-PROC - Failed to system command string"
);
}
}
...
...
openair3/NAS/UE/nas_ue_task.c
View file @
0ae01780
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
* For more information about the OpenAirInterface (OAI) Software Alliance:
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
#define _GNU_SOURCE
#include "utils.h"
#include "utils.h"
#if defined(ENABLE_ITTI)
#if defined(ENABLE_ITTI)
# include "assertions.h"
# include "assertions.h"
...
@@ -94,7 +94,36 @@ void *nas_ue_task(void *args_p)
...
@@ -94,7 +94,36 @@ void *nas_ue_task(void *args_p)
unsigned
int
Mod_id
;
unsigned
int
Mod_id
;
int
result
;
int
result
;
nas_user_container_t
*
users
=
args_p
;
nas_user_container_t
*
users
=
args_p
;
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
16
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"nas pthread_setaffinity_np"
);
exit_fun
(
"nas Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"nas pthread_getaffinity_np"
);
exit_fun
(
"nas Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
16
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_16"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of nas_enb_task to CPU %s!
\n
"
,
cpu_affinity
);
itti_mark_task_ready
(
TASK_NAS_UE
);
itti_mark_task_ready
(
TASK_NAS_UE
);
MSC_START_USE
();
MSC_START_USE
();
/* Initialize UE NAS (EURECOM-NAS) */
/* Initialize UE NAS (EURECOM-NAS) */
...
...
openair3/S1AP/s1ap_eNB.c
View file @
0ae01780
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
* \version 1.0
* \version 1.0
* @ingroup _s1ap
* @ingroup _s1ap
*/
*/
#define _GNU_SOURCE
#include <pthread.h>
#include <pthread.h>
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
...
@@ -300,6 +300,36 @@ void *s1ap_eNB_task(void *arg)
...
@@ -300,6 +300,36 @@ void *s1ap_eNB_task(void *arg)
S1AP_DEBUG
(
"Starting S1AP layer
\n
"
);
S1AP_DEBUG
(
"Starting S1AP layer
\n
"
);
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
11
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"s1ap pthread_setaffinity_np"
);
exit_fun
(
"s1ap Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"s1ap pthread_getaffinity_np"
);
exit_fun
(
"s1ap Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
11
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_11"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of s1ap_task to CPU %s!
\n
"
,
cpu_affinity
);
s1ap_eNB_prepare_internal_data
();
s1ap_eNB_prepare_internal_data
();
itti_mark_task_ready
(
TASK_S1AP
);
itti_mark_task_ready
(
TASK_S1AP
);
...
...
openair3/SCTP/sctp_eNB_task.c
View file @
0ae01780
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
* For more information about the OpenAirInterface (OAI) Software Alliance:
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
#define _GNU_SOURCE
#include <pthread.h>
#include <pthread.h>
#include <stdint.h>
#include <stdint.h>
#include <errno.h>
#include <errno.h>
...
@@ -809,6 +809,36 @@ void *sctp_eNB_task(void *arg)
...
@@ -809,6 +809,36 @@ void *sctp_eNB_task(void *arg)
SCTP_DEBUG
(
"Starting SCTP layer
\n
"
);
SCTP_DEBUG
(
"Starting SCTP layer
\n
"
);
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
11
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"sctp pthread_setaffinity_np"
);
exit_fun
(
"sctp Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"sctp pthread_getaffinity_np"
);
exit_fun
(
"sctp Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
11
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_11"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of sctp_task to CPU %s!
\n
"
,
cpu_affinity
);
STAILQ_INIT
(
&
sctp_cnx_list
);
STAILQ_INIT
(
&
sctp_cnx_list
);
itti_mark_task_ready
(
TASK_SCTP
);
itti_mark_task_ready
(
TASK_SCTP
);
...
...
openair3/UDP/udp_eNB_task.c
View file @
0ae01780
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
* \company Eurecom
* \company Eurecom
* \email: lionel.gauthier@eurecom.fr
* \email: lionel.gauthier@eurecom.fr
*/
*/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
...
@@ -295,7 +296,37 @@ void *udp_eNB_task(void *args_p)
...
@@ -295,7 +296,37 @@ void *udp_eNB_task(void *args_p)
MessageDef
*
received_message_p
=
NULL
;
MessageDef
*
received_message_p
=
NULL
;
//const char *msg_name = NULL;
//const char *msg_name = NULL;
//instance_t instance = 0;
//instance_t instance = 0;
udp_enb_init
();
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
12
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"udp pthread_setaffinity_np"
);
exit_fun
(
"udp Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"udp pthread_getaffinity_np"
);
exit_fun
(
"udp Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
12
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_12"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of udp_task to CPU %s!
\n
"
,
cpu_affinity
);
udp_enb_init
();
itti_mark_task_ready
(
TASK_UDP
);
itti_mark_task_ready
(
TASK_UDP
);
MSC_START_USE
();
MSC_START_USE
();
...
...
targets/RT/USER/lte-enb.c
View file @
0ae01780
...
@@ -604,7 +604,7 @@ void* eNB_time_sync( void* param ){
...
@@ -604,7 +604,7 @@ void* eNB_time_sync( void* param ){
// set default return value
// set default return value
eNB_time_sync_status
=
0
;
eNB_time_sync_status
=
0
;
thread_top_init
(
"eNB_time_sync"
,
1
,
500000L
,
1000000L
,
20000000L
);
thread_top_init
(
"eNB_time_sync"
,
6
,
500000L
,
1000000L
,
20000000L
);
wait_sync
(
"eNB_time_sync"
);
wait_sync
(
"eNB_time_sync"
);
wait_system_ready
(
"eNB_time_sync"
,
&
socket_ready_flag
);
wait_system_ready
(
"eNB_time_sync"
,
&
socket_ready_flag
);
...
@@ -798,7 +798,7 @@ static void* eNB_phy_stub( void* param ) {
...
@@ -798,7 +798,7 @@ static void* eNB_phy_stub( void* param ) {
// set default return value
// set default return value
eNB_phy_stub_status
=
0
;
eNB_phy_stub_status
=
0
;
thread_top_init
(
"eNB_phy_stub"
,
1
,
500000L
,
1000000L
,
20000000L
);
thread_top_init
(
"eNB_phy_stub"
,
7
,
500000L
,
1000000L
,
20000000L
);
addr
=
RC
.
rrc
[
eNB
->
Mod_id
]
->
udp_socket_ip_enb
;
addr
=
RC
.
rrc
[
eNB
->
Mod_id
]
->
udp_socket_ip_enb
;
port
=
RC
.
rrc
[
eNB
->
Mod_id
]
->
udp_socket_port_enb
;
port
=
RC
.
rrc
[
eNB
->
Mod_id
]
->
udp_socket_port_enb
;
...
...
targets/RT/USER/lte-ru.c
View file @
0ae01780
...
@@ -842,9 +842,7 @@ static void* ru_thread_asynch_rxtx( void* param ) {
...
@@ -842,9 +842,7 @@ static void* ru_thread_asynch_rxtx( void* param ) {
int
subframe
=
0
,
frame
=
0
;
int
subframe
=
0
,
frame
=
0
;
thread_top_init
(
"ru_thread_asynch_rxtx"
,
1
,
870000L
,
1000000L
,
1000000L
);
thread_top_init
(
"ru_thread_asynch_rxtx"
,
1
,
870000L
,
1000000L
,
1000000L
);
// wait for top-level synchronization and do one acquisition to get timestamp for setting frame/subframe
// wait for top-level synchronization and do one acquisition to get timestamp for setting frame/subframe
wait_sync
(
"ru_thread_asynch_rxtx"
);
wait_sync
(
"ru_thread_asynch_rxtx"
);
...
@@ -1352,7 +1350,7 @@ static void* ru_thread( void* param ) {
...
@@ -1352,7 +1350,7 @@ static void* ru_thread( void* param ) {
// set default return value
// set default return value
thread_top_init
(
"ru_thread"
,
0
,
870000
,
1000000
,
1000000
);
thread_top_init
(
"ru_thread"
,
8
,
870000
,
1000000
,
1000000
);
LOG_I
(
PHY
,
"Starting RU %d (%s,%s),
\n
"
,
ru
->
idx
,
eNB_functions
[
ru
->
function
],
eNB_timing
[
ru
->
if_timing
]);
LOG_I
(
PHY
,
"Starting RU %d (%s,%s),
\n
"
,
ru
->
idx
,
eNB_functions
[
ru
->
function
],
eNB_timing
[
ru
->
if_timing
]);
...
...
targets/RT/USER/lte-softmodem.c
View file @
0ae01780
...
@@ -507,7 +507,37 @@ static void *scope_thread(void *arg) {
...
@@ -507,7 +507,37 @@ static void *scope_thread(void *arg) {
void
*
l2l1_task
(
void
*
arg
)
{
void
*
l2l1_task
(
void
*
arg
)
{
MessageDef
*
message_p
=
NULL
;
MessageDef
*
message_p
=
NULL
;
int
result
;
int
result
;
char
temp
[
1024
];
char
cpu_affinity
[
1024
];
cpu_set_t
cpuset
;
int
s
;
CPU_ZERO
(
&
cpuset
);
CPU_SET
(
5
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_setaffinity_np"
);
exit_fun
(
"rrc Error setting processor affinity"
);
}
/* Check the actual affinity mask assigned to the thread */
s
=
pthread_getaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
perror
(
"rrc pthread_getaffinity_np"
);
exit_fun
(
"rrc Error getting processor affinity "
);
}
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
if
(
CPU_ISSET
(
5
,
&
cpuset
))
{
sprintf
(
temp
,
" CPU_5"
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of l2l1_task to CPU %s!
\n
"
,
cpu_affinity
);
itti_set_task_real_time
(
TASK_L2L1
);
itti_set_task_real_time
(
TASK_L2L1
);
itti_mark_task_ready
(
TASK_L2L1
);
itti_mark_task_ready
(
TASK_L2L1
);
...
@@ -1031,14 +1061,14 @@ int main( int argc, char **argv )
...
@@ -1031,14 +1061,14 @@ int main( int argc, char **argv )
if
(
init_opt
(
in_path
,
in_ip
,
NULL
,
radio_type
)
==
-
1
)
if
(
init_opt
(
in_path
,
in_ip
,
NULL
,
radio_type
)
==
-
1
)
LOG_E
(
OPT
,
"failed to run OPT
\n
"
);
LOG_E
(
OPT
,
"failed to run OPT
\n
"
);
}
}
if
(
UE_flag
==
1
)
{
#ifdef PDCP_USE_NETLINK
#ifdef PDCP_USE_NETLINK
netlink_init
();
netlink_init
();
#if defined(PDCP_USE_NETLINK_QUEUES)
#if defined(PDCP_USE_NETLINK_QUEUES)
pdcp_netlink_init
();
pdcp_netlink_init
();
#endif
#endif
#endif
#endif
}
#if !defined(ENABLE_ITTI)
#if !defined(ENABLE_ITTI)
// to make a graceful exit when ctrl-c is pressed
// to make a graceful exit when ctrl-c is pressed
signal
(
SIGSEGV
,
signal_handler
);
signal
(
SIGSEGV
,
signal_handler
);
...
@@ -1152,15 +1182,27 @@ int main( int argc, char **argv )
...
@@ -1152,15 +1182,27 @@ int main( int argc, char **argv )
int
s
;
int
s
;
char
cpu_affinity
[
1024
];
char
cpu_affinity
[
1024
];
CPU_ZERO
(
&
cpuset
);
CPU_ZERO
(
&
cpuset
);
#ifdef CPU_AFFINITY
//#ifdef CPU_AFFINITY
#if 1
if
(
get_nprocs
()
>
2
)
{
if
(
get_nprocs
()
>
2
)
{
CPU_SET
(
0
,
&
cpuset
);
// CPU_SET(0, &cpuset);
//CPU_SET(0, &cpuset);
CPU_SET
(
4
,
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
{
if
(
s
!=
0
)
{
perror
(
"pthread_setaffinity_np"
);
perror
(
"pthread_setaffinity_np"
);
exit_fun
(
"Error setting processor affinity"
);
exit_fun
(
"Error setting processor affinity"
);
}
}
LOG_I
(
HW
,
"Setting the affinity of main function to CPU 0, for device library to use CPU 0 only!
\n
"
);
// LOG_I(HW, "Setting the affinity of main function to CPU 0, for device library to use CPU 0 only!\n");
char
cpu_affinity
[
1024
];
memset
(
cpu_affinity
,
0
,
sizeof
(
cpu_affinity
));
for
(
int
j
=
0
;
j
<
get_nprocs
();
j
++
)
if
(
CPU_ISSET
(
j
,
&
cpuset
))
{
char
temp
[
1024
];
sprintf
(
temp
,
" CPU_%d"
,
j
);
strcat
(
cpu_affinity
,
temp
);
}
printf
(
"Setting the affinity of main function to CPU %s, for device library to use CPU only!
\n
"
,
cpu_affinity
);
}
}
#endif
#endif
...
@@ -1189,7 +1231,7 @@ int main( int argc, char **argv )
...
@@ -1189,7 +1231,7 @@ int main( int argc, char **argv )
(
RC
.
nb_inst
>
0
))
{
(
RC
.
nb_inst
>
0
))
{
// don't create if node doesn't connect to RRC/S1/GTP
// don't create if node doesn't connect to RRC/S1/GTP
if
(
create_tasks
(
UE_flag
?
0
:
1
,
UE_flag
?
1
:
0
)
<
0
)
{
if
(
create_tasks
(
UE_flag
?
0
:
1
,
UE_flag
?
NB_UE_INST
:
0
)
<
0
)
{
printf
(
"cannot create ITTI tasks
\n
"
);
printf
(
"cannot create ITTI tasks
\n
"
);
exit
(
-
1
);
// need a softer mode
exit
(
-
1
);
// need a softer mode
}
}
...
...
targets/RT/USER/lte-ue.c
View file @
0ae01780
...
@@ -91,7 +91,7 @@ int32_t **txdata;
...
@@ -91,7 +91,7 @@ int32_t **txdata;
#ifdef UE_EXPANSION_SIM2
#ifdef UE_EXPANSION_SIM2
UE_RX_RECEIVE_INFO
ue_rx_receive_info
[
10
];
UE_RX_RECEIVE_INFO
ue_rx_receive_info
[
10
];
//uint8_t pdcp_end_flag[RX_NB_TH][256];
int
ue_sd_c
;
int
ue_sd_c
;
int
ue_sd_s
;
int
ue_sd_s
;
extern
int
udp_socket_ip_enb
;
extern
int
udp_socket_ip_enb
;
...
@@ -642,7 +642,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
...
@@ -642,7 +642,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
sprintf
(
threadname
,
"UE_%d_proc_%d"
,
UE
->
Mod_id
,
proc
->
sub_frame_start
);
sprintf
(
threadname
,
"UE_%d_proc_%d"
,
UE
->
Mod_id
,
proc
->
sub_frame_start
);
cpu_set_t
cpuset
;
cpu_set_t
cpuset
;
CPU_ZERO
(
&
cpuset
);
CPU_ZERO
(
&
cpuset
);
#if 0
if ( (proc->sub_frame_start+1)%RX_NB_TH == 0 && threads.one != -1 )
if ( (proc->sub_frame_start+1)%RX_NB_TH == 0 && threads.one != -1 )
CPU_SET(threads.one, &cpuset);
CPU_SET(threads.one, &cpuset);
if ( (proc->sub_frame_start+1)%RX_NB_TH == 1 && threads.two != -1 )
if ( (proc->sub_frame_start+1)%RX_NB_TH == 1 && threads.two != -1 )
...
@@ -650,6 +650,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
...
@@ -650,6 +650,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
if ( (proc->sub_frame_start+1)%RX_NB_TH == 2 && threads.three != -1 )
if ( (proc->sub_frame_start+1)%RX_NB_TH == 2 && threads.three != -1 )
CPU_SET(threads.three, &cpuset);
CPU_SET(threads.three, &cpuset);
//CPU_SET(threads.three, &cpuset);
//CPU_SET(threads.three, &cpuset);
#endif
CPU_SET
(
18
+
(
UE
->
Mod_id
%
8
),
&
cpuset
);
init_thread
(
900000
,
1000000
,
FIFO_PRIORITY
-
1
,
&
cpuset
,
init_thread
(
900000
,
1000000
,
FIFO_PRIORITY
-
1
,
&
cpuset
,
threadname
);
threadname
);
...
@@ -828,7 +830,11 @@ static void *UE_thread_rxn_txnp4(void *arg) {
...
@@ -828,7 +830,11 @@ static void *UE_thread_rxn_txnp4(void *arg) {
proc
->
subframe_tx
,
proc
->
subframe_tx
,
subframe_select
(
&
UE
->
frame_parms
,
proc
->
subframe_tx
),
subframe_select
(
&
UE
->
frame_parms
,
proc
->
subframe_tx
),
0
,
0
,
0
/*FIXME CC_id*/
);
0
/*FIXME CC_id*/
#ifdef UE_EXPANSION_SIM2
,
proc
->
sub_frame_start
#endif
);
if
(
ret
!=
CONNECTION_OK
)
{
if
(
ret
!=
CONNECTION_OK
)
{
char
*
txt
;
char
*
txt
;
switch
(
ret
)
{
switch
(
ret
)
{
...
@@ -871,6 +877,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
...
@@ -871,6 +877,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
if
(
UE
->
mode
!=
loop_through_memory
)
if
(
UE
->
mode
!=
loop_through_memory
)
phy_procedures_UE_S_TX
(
UE
,
0
,
0
,
no_relay
);
phy_procedures_UE_S_TX
(
UE
,
0
,
0
,
no_relay
);
#else
#else
}
else
{
//pdcp_end_flag[proc->sub_frame_start][UE->Mod_id] = 1;
}
}
ue_tx_info
[
proc
->
sub_frame_start
][
UE
->
Mod_id
].
flag
=
1
;
ue_tx_info
[
proc
->
sub_frame_start
][
UE
->
Mod_id
].
flag
=
1
;
#endif
#endif
...
@@ -929,7 +937,8 @@ void* UE_time_sync(void *arg){
...
@@ -929,7 +937,8 @@ void* UE_time_sync(void *arg){
int
inst
;
int
inst
;
uint8_t
CC_id
;
uint8_t
CC_id
;
int
ue_inst
=
0
;
int
ue_inst
=
0
;
protocol_ctxt_t
ctxt
;
volatile
uint8_t
thread_idx
=
0
;
volatile
uint8_t
thread_idx
=
0
;
sprintf
(
threadname
,
"UE_time_sync"
);
sprintf
(
threadname
,
"UE_time_sync"
);
cpu_set_t
cpuset
;
cpu_set_t
cpuset
;
...
@@ -1013,6 +1022,11 @@ void* UE_time_sync(void *arg){
...
@@ -1013,6 +1022,11 @@ void* UE_time_sync(void *arg){
PHY_vars_UE_g
[
0
][
CC_id
]
->
proc
.
proc_rxtx
[
thread_idx
].
frame_tx
=
(
frame
+
(
subframe
>
5
?
1
:
0
))
&
1023
;
PHY_vars_UE_g
[
0
][
CC_id
]
->
proc
.
proc_rxtx
[
thread_idx
].
frame_tx
=
(
frame
+
(
subframe
>
5
?
1
:
0
))
&
1023
;
PHY_vars_UE_g
[
0
][
CC_id
]
->
proc
.
proc_rxtx
[
thread_idx
].
subframe_tx
=
(
subframe
+
4
)
%
10
;
PHY_vars_UE_g
[
0
][
CC_id
]
->
proc
.
proc_rxtx
[
thread_idx
].
subframe_tx
=
(
subframe
+
4
)
%
10
;
}
}
//memset(&pdcp_end_flag[thread_idx][0],0,256);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
0
,
ENB_FLAG_NO
,
0
,
PHY_vars_UE_g
[
0
][
0
]
->
proc
.
proc_rxtx
[
thread_idx
].
frame_tx
,
PHY_vars_UE_g
[
0
][
0
]
->
proc
.
proc_rxtx
[
thread_idx
].
subframe_tx
,
0
);
pdcp_run
(
&
ctxt
);
if
(
pthread_mutex_lock
(
&
mutex_rxtx
[
thread_idx
])
!=
0
){
if
(
pthread_mutex_lock
(
&
mutex_rxtx
[
thread_idx
])
!=
0
){
LOG_E
(
MAC
,
"[UE] ERROR locking mutex for cond rxtx[%d]
\n
"
,
thread_idx
);
LOG_E
(
MAC
,
"[UE] ERROR locking mutex for cond rxtx[%d]
\n
"
,
thread_idx
);
...
@@ -1342,8 +1356,8 @@ static void* UE_phy_rev( void* arg ) {
...
@@ -1342,8 +1356,8 @@ static void* UE_phy_rev( void* arg ) {
cpu_set_t
cpuset
;
cpu_set_t
cpuset
;
CPU_ZERO
(
&
cpuset
);
CPU_ZERO
(
&
cpuset
);
if
(
threads
.
iq
!=
-
1
)
//
if ( threads.iq != -1 )
CPU_SET
(
threads
.
iq
,
&
cpuset
);
CPU_SET
(
15
,
&
cpuset
);
init_thread
(
100000
,
500000
,
FIFO_PRIORITY
-
1
,
&
cpuset
,
init_thread
(
100000
,
500000
,
FIFO_PRIORITY
-
1
,
&
cpuset
,
"UE_phy_rev"
);
"UE_phy_rev"
);
...
@@ -1424,8 +1438,8 @@ static void* UE_phy_send( void* param ) {
...
@@ -1424,8 +1438,8 @@ static void* UE_phy_send( void* param ) {
cpu_set_t
cpuset
;
cpu_set_t
cpuset
;
CPU_ZERO
(
&
cpuset
);
CPU_ZERO
(
&
cpuset
);
if
(
threads
.
iq
!=
-
1
)
//
if ( threads.iq != -1 )
CPU_SET
(
threads
.
iq
,
&
cpuset
);
CPU_SET
(
13
+
thread_idx
,
&
cpuset
);
init_thread
(
100000
,
500000
,
FIFO_PRIORITY
-
1
,
&
cpuset
,
init_thread
(
100000
,
500000
,
FIFO_PRIORITY
-
1
,
&
cpuset
,
"UE_phy_send"
);
"UE_phy_send"
);
...
...
targets/RT/USER/rt_wrapper.c
View file @
0ae01780
...
@@ -298,14 +298,19 @@ void thread_top_init(char *thread_name,
...
@@ -298,14 +298,19 @@ void thread_top_init(char *thread_name,
/* Enable CPU Affinity only if number of CPUs >2 */
/* Enable CPU Affinity only if number of CPUs >2 */
CPU_ZERO
(
&
cpuset
);
CPU_ZERO
(
&
cpuset
);
#ifdef CPU_AFFINITY
//#ifdef CPU_AFFINITY
#if 1
if
(
get_nprocs
()
>
2
)
if
(
get_nprocs
()
>
2
)
{
{
#if 0
if (affinity == 0)
if (affinity == 0)
CPU_SET(0,&cpuset);
CPU_SET(0,&cpuset);
else
else
for (j = 1; j < get_nprocs(); j++)
for (j = 1; j < get_nprocs(); j++)
CPU_SET(j, &cpuset);
CPU_SET(j, &cpuset);
#else
CPU_SET
(
affinity
,
&
cpuset
);
#endif
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
s
=
pthread_setaffinity_np
(
pthread_self
(),
sizeof
(
cpu_set_t
),
&
cpuset
);
if
(
s
!=
0
)
if
(
s
!=
0
)
{
{
...
@@ -345,7 +350,7 @@ void thread_top_init(char *thread_name,
...
@@ -345,7 +350,7 @@ void thread_top_init(char *thread_name,
exit_fun
(
"Error getting thread priority"
);
exit_fun
(
"Error getting thread priority"
);
}
}
LOG_I
(
HW
,
"[SCHED][eNB] %s started on CPU %d, sched_policy = %s , priority = %d, CPU Affinity=%s
\n
"
,
thread_name
,
sched_getcpu
(),
printf
(
"[SCHED][eNB] %s started on CPU %d, sched_policy = %s , priority = %d, CPU Affinity=%s
\n
"
,
thread_name
,
sched_getcpu
(),
(
policy
==
SCHED_FIFO
)
?
"SCHED_FIFO"
:
(
policy
==
SCHED_FIFO
)
?
"SCHED_FIFO"
:
(
policy
==
SCHED_RR
)
?
"SCHED_RR"
:
(
policy
==
SCHED_RR
)
?
"SCHED_RR"
:
(
policy
==
SCHED_OTHER
)
?
"SCHED_OTHER"
:
(
policy
==
SCHED_OTHER
)
?
"SCHED_OTHER"
:
...
...
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