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
wangwenhui
OpenXG-RAN
Commits
210754c0
Commit
210754c0
authored
Oct 07, 2017
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'RU-RAU-split' of
https://gitlab.eurecom.fr/oai/openairinterface5g
into RU-RAU-split
parents
b8235ff7
3b824c90
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
257 additions
and
21 deletions
+257
-21
common/utils/load_module_shlib.c
common/utils/load_module_shlib.c
+75
-16
common/utils/load_module_shlib.h
common/utils/load_module_shlib.h
+55
-1
common/utils/telnetsrv/telnetsrv.c
common/utils/telnetsrv/telnetsrv.c
+1
-1
common/utils/telnetsrv/telnetsrv.h
common/utils/telnetsrv/telnetsrv.h
+31
-0
common/utils/telnetsrv/telnetsrv_phycmd.c
common/utils/telnetsrv/telnetsrv_phycmd.c
+32
-1
common/utils/telnetsrv/telnetsrv_phycmd.h
common/utils/telnetsrv/telnetsrv_phycmd.h
+30
-0
common/utils/telnetsrv/telnetsrv_proccmd.c
common/utils/telnetsrv/telnetsrv_proccmd.c
+31
-0
common/utils/telnetsrv/telnetsrv_proccmd.h
common/utils/telnetsrv/telnetsrv_proccmd.h
+1
-1
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+1
-1
No files found.
common/utils/load_module_shlib.c
View file @
210754c0
/*
* 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.0 (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
*/
/* FT NOKBLF:
/*! \file common/utils/load_module_shlib.c
* this source is to be linked with the program using the telnet server, it looks for
* \brief shared library loader implementation
* the telnet server dynamic library, possibly loads it and calls the telnet server
* \author Francois TABURET
* init functions
* \date 2017
*/
* \version 0.1
* \company NOKIA BellLabs France
* \email: francois.taburet@nokia-bell-labs.com
* \note
* \warning
*/
#define _GNU_SOURCE
#define _GNU_SOURCE
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
...
@@ -13,37 +38,71 @@
...
@@ -13,37 +38,71 @@
#include <dlfcn.h>
#include <dlfcn.h>
#include "openair1/PHY/defs.h"
#include "openair1/PHY/defs.h"
#define LOAD_MODULE_SHLIB_MAIN
#define LOAD_MODULE_SHLIB_MAIN
#include "common/config/config_userapi.h"
#include "load_module_shlib.h"
#include "load_module_shlib.h"
int
load_module_shlib
(
char
*
modname
)
void
loader_init
(
void
)
{
paramdef_t
LoaderParams
[]
=
LOADER_PARAMS_DESC
;
int
ret
=
config_get
(
LoaderParams
,
sizeof
(
LoaderParams
)
/
sizeof
(
paramdef_t
),
LOADER_CONFIG_PREFIX
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"[LOADER] configuration couldn't be performed"
);
if
(
loader_data
.
shlibpath
==
NULL
)
{
loader_data
.
shlibpath
=
DEFAULT_PATH
;
}
return
;
}
}
int
load_module_shlib
(
char
*
modname
,
loader_shlibfunc_t
*
farray
,
int
numf
)
{
{
void
*
lib_handle
;
void
*
lib_handle
;
initfunc_t
fpi
;
initfunc_t
fpi
;
char
*
tmpstr
;
char
*
tmpstr
;
int
ret
=
0
;
int
ret
=
0
;
tmpstr
=
malloc
(
strlen
(
modname
)
+
16
);
if
(
loader_data
.
shlibpath
==
NULL
)
{
loader_init
();
}
tmpstr
=
malloc
(
strlen
(
loader_data
.
shlibpath
)
+
strlen
(
modname
)
+
16
);
if
(
tmpstr
==
NULL
)
{
if
(
tmpstr
==
NULL
)
{
fprintf
(
stderr
,
"[LOADER] %s %d malloc error loading module %s, %s
\n
"
,
__FILE__
,
__LINE__
,
modname
,
strerror
(
errno
));
fprintf
(
stderr
,
"[LOADER] %s %d malloc error loading module %s, %s
\n
"
,
__FILE__
,
__LINE__
,
modname
,
strerror
(
errno
));
return
-
1
;
return
-
1
;
}
}
sprintf
(
tmpstr
,
"lib%s.so"
,
modname
);
if
(
loader_data
.
shlibpath
[
0
]
!=
0
)
{
ret
=
sprintf
(
tmpstr
,
"%s/"
,
loader_data
.
shlibpath
);
}
if
(
strstr
(
modname
,
".so"
)
==
NULL
)
{
sprintf
(
tmpstr
+
ret
,
"lib%s.so"
,
modname
);
}
else
{
sprintf
(
tmpstr
+
ret
,
"%s"
,
modname
);
}
ret
=
0
;
lib_handle
=
dlopen
(
tmpstr
,
RTLD_LAZY
|
RTLD_NODELETE
|
RTLD_GLOBAL
);
lib_handle
=
dlopen
(
tmpstr
,
RTLD_LAZY
|
RTLD_NODELETE
|
RTLD_GLOBAL
);
if
(
!
lib_handle
)
{
if
(
!
lib_handle
)
{
printf
(
"[LOADER] library %s is not loaded: %s
\n
"
,
tmpstr
,
dlerror
());
fprintf
(
stderr
,
"[LOADER] library %s is not loaded: %s
\n
"
,
tmpstr
,
dlerror
());
ret
=
-
1
;
ret
=
-
1
;
}
else
{
}
else
{
sprintf
(
tmpstr
,
"init_%s"
,
modname
);
printf
(
"[LOADER] library %s uccessfully loaded loaded
\n
"
,
tmpstr
);
sprintf
(
tmpstr
,
"%s_autoinit"
,
modname
);
fpi
=
dlsym
(
lib_handle
,
tmpstr
);
fpi
=
dlsym
(
lib_handle
,
tmpstr
);
if
(
fpi
!=
NULL
)
if
(
fpi
!=
NULL
)
{
{
fpi
();
fpi
();
}
}
else
{
if
(
farray
!=
NULL
)
{
fprintf
(
stderr
,
"[LOADER] %s %d %s function not found %s
\n
"
,
__FILE__
,
__LINE__
,
dlerror
(),
tmpstr
);
for
(
int
i
=
0
;
i
<
numf
;
i
++
)
{
ret
=
-
1
;
farray
[
i
].
fptr
=
dlsym
(
lib_handle
,
farray
[
i
].
fname
);
}
if
(
farray
[
i
].
fptr
==
NULL
)
{
fprintf
(
stderr
,
"[LOADER] %s %d %s function not found %s
\n
"
,
__FILE__
,
__LINE__
,
dlerror
(),
farray
[
i
].
fname
);
ret
=
-
1
;
}
}
/* for int i... */
}
/* farray ! NULL */
}
}
if
(
tmpstr
!=
NULL
)
free
(
tmpstr
);
if
(
tmpstr
!=
NULL
)
free
(
tmpstr
);
...
...
common/utils/load_module_shlib.h
View file @
210754c0
/*
* 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.0 (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
*/
/*! \file common/utils/load_module_shlib.h
* \brief include file for users of the shared lib loader
* \author Francois TABURET
* \date 2017
* \version 0.1
* \company NOKIA BellLabs France
* \email: francois.taburet@nokia-bell-labs.com
* \note
* \warning
*/
#ifndef LOAD_SHLIB_H
#ifndef LOAD_SHLIB_H
#define LOAD_SHLIB_H
#define LOAD_SHLIB_H
typedef
int
(
*
initfunc_t
)(
void
);
typedef
int
(
*
initfunc_t
)(
void
);
typedef
struct
{
char
*
shlibpath
;
}
loader_data_t
;
typedef
struct
{
char
*
fname
;
int
(
*
fptr
)(
void
);
}
loader_shlibfunc_t
;
#ifdef LOAD_MODULE_SHLIB_MAIN
#ifdef LOAD_MODULE_SHLIB_MAIN
#define LOADER_CONFIG_PREFIX "loader"
#define DEFAULT_PATH ""
loader_data_t
loader_data
;
/*--------------------------------------------------------------------------------------------------------------------------------------*/
/* LOADER parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*--------------------------------------------------------------------------------------------------------------------------------------*/
#define LOADER_PARAMS_DESC { \
{"shlibpath", NULL, 0, strptr:(char **)&(loader_data.shlibpath), defstrval:DEFAULT_PATH, TYPE_STRING, 0} \
}
/*-------------------------------------------------------------------------------------------------------------*/
#else
#else
extern
int
load_module_shlib
(
char
*
modname
);
extern
int
load_module_shlib
(
char
*
modname
,
loader_shlibfunc_t
*
farray
,
int
numf
);
#endif
#endif
#endif
#endif
common/utils/telnetsrv/telnetsrv.c
View file @
210754c0
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
/*! \file common/utils/telnetsrv.c
/*! \file common/utils/telnetsrv
/telnetsrv
.c
* \brief: implementation of a telnet server
* \brief: implementation of a telnet server
* \author Francois TABURET
* \author Francois TABURET
* \date 2017
* \date 2017
...
...
common/utils/telnetsrv/telnetsrv.h
View file @
210754c0
/*
* 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.0 (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
*/
/*! \file common/utils/telnetsrv/telnetsrv.h
* \brief: include file for telnet server implementation
* \author Francois TABURET
* \date 2017
* \version 0.1
* \company NOKIA BellLabs France
* \email: francois.taburet@nokia-bell-labs.com
* \note
* \warning
*/
#ifndef TELNETSRV_H
#ifndef TELNETSRV_H
#define TELNETSRV_H
#define TELNETSRV_H
...
...
common/utils/telnetsrv/telnetsrv_phycmd.c
View file @
210754c0
/*
* 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.0 (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
*/
/*! \file common/utils/telnetsrv/telnetsrv_phycmd.c
* \brief: implementation of telnet commands related to softmodem linux process
* \author Francois TABURET
* \date 2017
* \version 0.1
* \company NOKIA BellLabs France
* \email: francois.taburet@nokia-bell-labs.com
* \note
* \warning
*/
#define _GNU_SOURCE
#define _GNU_SOURCE
#include <string.h>
#include <string.h>
#include <pthread.h>
#include <pthread.h>
...
@@ -89,7 +120,7 @@ int dump_phyvars(char *buf, int debug, telnet_printfunc_t prnt)
...
@@ -89,7 +120,7 @@ int dump_phyvars(char *buf, int debug, telnet_printfunc_t prnt)
if
(
strcasestr
(
buf
,
"uedump"
)
!=
NULL
)
if
(
strcasestr
(
buf
,
"uedump"
)
!=
NULL
)
{
{
dump_uestats
(
debug
,
prnt
,
1
);
dump_uestats
(
debug
,
prnt
,
1
);
}
}
return
0
;
return
0
;
}
}
...
...
common/utils/telnetsrv/telnetsrv_phycmd.h
View file @
210754c0
/*
* 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.0 (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
*/
/*! \file common/utils/telnetsrv_proccmd.h
* \brief: Include file defining telnet commands related to softmodem linux process
* \author Francois TABURET
* \date 2017
* \version 0.1
* \company NOKIA BellLabs France
* \email: francois.taburet@nokia-bell-labs.com
* \note
* \warning
*/
#ifdef TELNETSRV_PHYCMD_MAIN
#ifdef TELNETSRV_PHYCMD_MAIN
...
...
common/utils/telnetsrv/telnetsrv_proccmd.c
View file @
210754c0
/*
* 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.0 (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
*/
/*! \file common/utils/telnetsrv/telnetsrv_proccmd.c
* \brief: implementation of telnet commands related to this linux process
* \author Francois TABURET
* \date 2017
* \version 0.1
* \company NOKIA BellLabs France
* \email: francois.taburet@nokia-bell-labs.com
* \note
* \warning
*/
#define _GNU_SOURCE
#define _GNU_SOURCE
#include <sys/types.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
...
...
common/utils/telnetsrv/telnetsrv_proccmd.h
View file @
210754c0
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
/*! \file common/utils/telnetsrv_proccmd.h
/*! \file common/utils/telnetsrv
/telnetsrv
_proccmd.h
* \brief: Include file defining telnet commands related to this linux process
* \brief: Include file defining telnet commands related to this linux process
* \author Francois TABURET
* \author Francois TABURET
* \date 2017
* \date 2017
...
...
targets/RT/USER/lte-softmodem.c
View file @
210754c0
...
@@ -588,7 +588,7 @@ static void get_options(void) {
...
@@ -588,7 +588,7 @@ static void get_options(void) {
set_glog
(
-
1
,
glog_verbosity
);
set_glog
(
-
1
,
glog_verbosity
);
}
}
if
(
start_telnetsrv
)
{
if
(
start_telnetsrv
)
{
load_module_shlib
(
"telnetsrv"
);
load_module_shlib
(
"telnetsrv"
,
NULL
,
0
);
}
}
...
...
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