Merge branch 'bler_txoptim' of https://gitlab.eurecom.fr/oai/openairinterface5g into bler_txoptim

This commit is contained in:
Raymond Knopp
2021-11-14 17:28:56 +01:00
101 changed files with 671 additions and 3535 deletions
-29
View File
@@ -97,35 +97,6 @@ rrc_init_global_param(
//-----------------------------------------------------------------------------
{
//#ifdef USER_MODE
// Rrc_xface = (RRC_XFACE*)malloc16(sizeof(RRC_XFACE));
//#endif //USRE_MODE
// Rrc_xface->openair_rrc_top_init = openair_rrc_top_init;
// Rrc_xface->openair_rrc_eNB_init = openair_rrc_eNB_init;
// Rrc_xface->openair_rrc_UE_init = openair_rrc_ue_init;
// Rrc_xface->mac_rrc_data_ind = mac_rrc_data_ind;
//Rrc_xface->mac_rrc_data_req = mac_rrc_data_req;
// Rrc_xface->rrc_data_indP = (void *)rlcrrc_data_ind;
// Rrc_xface->rrc_rx_tx = rrc_rx_tx;
// Rrc_xface->mac_rrc_meas_ind = mac_rrc_meas_ind;
// Rrc_xface->get_rrc_status = get_rrc_status;
//Rrc_xface->rrc_get_status = ...
// Mac_rlc_xface->mac_out_of_sync_ind=mac_out_of_sync_ind;
#ifndef NO_RRM
// Rrc_xface->fn_rrc=fn_rrc;
#endif
// LOG_D(RRC, "[RRC]INIT_GLOBAL_PARAM: Mac_rlc_xface %p, rrc_rlc_register %p,rlcrrc_data_ind%p\n",Mac_rlc_xface,Mac_rlc_xface->rrc_rlc_register_rrc,rlcrrc_data_ind);
/*
if((Mac_rlc_xface==NULL) || (Mac_rlc_xface->rrc_rlc_register_rrc==NULL) ||
(rlcrrc_data_ind==NULL)) {
LOG_E(RRC,"Data structured is not initialized \n");
return -1;
}
*/
rrc_rlc_register_rrc (rrc_data_ind, NULL); //register with rlc
DCCH_LCHAN_DESC.transport_block_size = 4;
@@ -28,7 +28,6 @@
* \email: raymond.knopp@eurecom.fr ,navid.nikaein@eurecom.fr, michele.paffetti@studio.unibo.it
*/
#ifdef USER_MODE
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h> /* for atoi(3) */
@@ -36,9 +35,6 @@
#include <string.h> /* for strerror(3) */
#include <sysexits.h> /* for EX_* exit codes */
#include <errno.h> /* for errno */
#else
#include <linux/module.h> /* Needed by all modules */
#endif
#include <asn_application.h>
#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
-522
View File
@@ -1,522 +0,0 @@
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_codecs_prim.c patch_dir/asn_codecs_prim.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_codecs_prim.c 2011-03-31 10:22:56.000000000 +0200
--- patch_dir/asn_codecs_prim.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 4,10 ****
*/
#include <asn_internal.h>
#include <asn_codecs_prim.h>
- #include <errno.h>
/*
* Decode an always-primitive type.
--- 4,9 ----
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_internal.h patch_dir/asn_internal.h
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_internal.h 2011-03-31 10:22:57.000000000 +0200
--- patch_dir/asn_internal.h 2011-05-31 10:28:26.000000000 +0200
***************
*** 10,20 ****
--- 10,31 ----
#define _ASN_INTERNAL_H_
#include "asn_application.h" /* Application-visible API */
+ #ifndef USER_MODE
+ #include <rtai.h>
+ #include <rtai_malloc.h>
+ #include "rtai_mem.h"
+ #endif
#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */
#include <assert.h> /* for assert() macro */
#endif
+ #ifndef USER_MODE
+ #ifndef assert
+ #define assert(expr) ((expr) ? (void) 0 : printk("Assertion failed in %s:%d\n", __FILE__, __LINE__))
+ #endif
+ #endif
+
#ifdef __cplusplus
extern "C" {
#endif
***************
*** 23,32 ****
--- 34,51 ----
#define ASN1C_ENVIRONMENT_VERSION 922 /* Compile-time version */
int get_asn1c_environment_version(void); /* Run-time version */
+ #ifdef USER_MODE
#define CALLOC(nmemb, size) calloc(nmemb, size)
#define MALLOC(size) malloc(size)
#define REALLOC(oldptr, size) realloc(oldptr, size)
#define FREEMEM(ptr) free(ptr)
+ #else
+ #define CALLOC(nmemb, size) rt_calloc(nmemb,size)
+ #define MALLOC(size) rt_malloc(size)
+ #define REALLOC(oldptr, size) rt_realloc(oldptr, size)
+ #define FREEMEM(ptr) rt_free(ptr);
+ #endif
+
/*
* A macro for debugging the ASN.1 internals.
***************
*** 38,45 ****
#ifdef ASN_THREAD_SAFE
#define asn_debug_indent 0
#else /* !ASN_THREAD_SAFE */
! int asn_debug_indent;
#endif /* ASN_THREAD_SAFE */
#define ASN_DEBUG(fmt, args...) do { \
int adi = asn_debug_indent; \
while(adi--) fprintf(stderr, " "); \
--- 57,65 ----
#ifdef ASN_THREAD_SAFE
#define asn_debug_indent 0
#else /* !ASN_THREAD_SAFE */
! extern int asn_debug_indent;
#endif /* ASN_THREAD_SAFE */
+ #ifdef USER_MODE
#define ASN_DEBUG(fmt, args...) do { \
int adi = asn_debug_indent; \
while(adi--) fprintf(stderr, " "); \
***************
*** 47,52 ****
--- 67,81 ----
fprintf(stderr, " (%s:%d)\n", \
__FILE__, __LINE__); \
} while(0)
+ #else
+ #define ASN_DEBUG(fmt, args...) do { \
+ int adi = asn_debug_indent; \
+ while(adi--) printk(" "); \
+ printk(fmt, ##args); \
+ printk(" (%s:%d)\n", \
+ __FILE__, __LINE__); \
+ } while(0)
+ #endif
#else /* !__GNUC__ */
void ASN_DEBUG_f(const char *fmt, ...);
#define ASN_DEBUG ASN_DEBUG_f
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_SET_OF.c patch_dir/asn_SET_OF.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_SET_OF.c 2011-03-31 10:22:56.000000000 +0200
--- patch_dir/asn_SET_OF.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 4,10 ****
*/
#include <asn_internal.h>
#include <asn_SET_OF.h>
- #include <errno.h>
/*
* Add another element into the set.
--- 4,9 ----
***************
*** 21,26 ****
--- 20,27 ----
/*
* Make sure there's enough space to insert an element.
*/
+ ASN_DEBUG("SET ADD: count %d, size %d",as->count,as->size);
+
if(as->count == as->size) {
int _newsize = as->size ? (as->size << 1) : 4;
void *_new_arr;
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_system.h patch_dir/asn_system.h
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/asn_system.h 2011-03-31 10:22:57.000000000 +0200
--- patch_dir/asn_system.h 2011-05-31 10:28:26.000000000 +0200
***************
*** 13,25 ****
#include "config.h"
#endif
! #include <stdio.h> /* For snprintf(3) */
! #include <stdlib.h> /* For *alloc(3) */
! #include <string.h> /* For memcpy(3) */
! #include <sys/types.h> /* For size_t */
! #include <limits.h> /* For LONG_MAX */
! #include <stdarg.h> /* For va_start */
! #include <stddef.h> /* for offsetof and ptrdiff_t */
#ifdef WIN32
--- 13,39 ----
#include "config.h"
#endif
! #ifdef USER_MODE
! #include <stdio.h> // For snprintf(3)
! #include <stdlib.h> // For *alloc(3)
! #include <string.h> // For memcpy(3)
! #include <sys/types.h> // For size_t
! #include <limits.h> // For LONG_MAX
! #include <stdarg.h> // For va_start
! #include <stddef.h> // for offsetof and ptrdiff_t
! #include <errno.h> // For errno
! #else
! typedef char FILE;
! #include <linux/types.h>
! #include <linux/slab.h> // For snprintf
! #include <linux/sort.h> // For sort
! #define qsort(base,num,size,cmp_func) sort(base,num,size,cmp_func,NULL)
! #include <linux/errno.h>// For errno
! #ifndef errno
! extern int errno;
! #endif
! #include "bsearch.h"
! #endif
#ifdef WIN32
***************
*** 63,69 ****
#include <types/vxTypes.h>
#else /* !defined(__vxworks) */
! #include <inttypes.h> /* C99 specifies this file */
/*
* 1. Earlier FreeBSD version didn't have <stdint.h>,
* but <inttypes.h> was present.
--- 77,85 ----
#include <types/vxTypes.h>
#else /* !defined(__vxworks) */
! #ifdef USER_MODE
! #include <inttypes.h> /*C99 specifies this file */
! #endif
/*
* 1. Earlier FreeBSD version didn't have <stdint.h>,
* but <inttypes.h> was present.
***************
*** 81,91 ****
#define inline
#endif /* __GNUC__ */
#else
! #include <stdint.h> /* SUSv2+ and C99 specify this file, for uintXX_t */
#endif /* defined(sun) */
#endif
! #include <netinet/in.h> /* for ntohl() */
#define sys_ntohl(foo) ntohl(foo)
#endif /* defined(__vxworks) */
--- 97,109 ----
#define inline
#endif /* __GNUC__ */
#else
! #ifdef USER_MODE
! #include <stdint.h> /*SUSv2+ and C99 specify this file, for uintXX_t */
! #endif
#endif /* defined(sun) */
#endif
! /*#include <netinet/in.h> for ntohl() */
#define sys_ntohl(foo) ntohl(foo)
#endif /* defined(__vxworks) */
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/ber_tlv_tag.c patch_dir/ber_tlv_tag.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/ber_tlv_tag.c 2011-03-31 10:22:56.000000000 +0200
--- patch_dir/ber_tlv_tag.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 4,10 ****
*/
#include <asn_internal.h>
#include <ber_tlv_tag.h>
- #include <errno.h>
ssize_t
ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) {
--- 4,9 ----
***************
*** 57,63 ****
return 0; /* Want more */
}
!
ssize_t
ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) {
char buf[sizeof("[APPLICATION ]") + 32];
--- 56,62 ----
return 0; /* Want more */
}
! #ifdef USER_MODE
ssize_t
ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) {
char buf[sizeof("[APPLICATION ]") + 32];
***************
*** 71,76 ****
--- 70,76 ----
return fwrite(buf, 1, ret, f);
}
+ #endif
ssize_t
ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) {
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/constraints.c patch_dir/constraints.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/constraints.c 2011-03-31 10:22:57.000000000 +0200
--- patch_dir/constraints.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 1,4 ****
! #include "asn_internal.h"
#include "constraints.h"
int
--- 1,4 ----
! #include <asn_internal.h>
#include "constraints.h"
int
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/constr_TYPE.c patch_dir/constr_TYPE.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/constr_TYPE.c 2011-03-31 10:22:56.000000000 +0200
--- patch_dir/constr_TYPE.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 4,10 ****
*/
#include <asn_internal.h>
#include <constr_TYPE.h>
- #include <errno.h>
/*
* Version of the ASN.1 infrastructure shipped with compiler.
--- 4,9 ----
***************
*** 29,34 ****
--- 28,34 ----
return type_descriptor->outmost_tag(type_descriptor, struct_ptr, 0, 0);
}
+ #ifdef USER_MODE
/*
* Print the target language's structure in human readable form.
*/
***************
*** 75,77 ****
--- 75,78 ----
fprintf(stderr, "\n");
va_end(ap);
}
+ #endif
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/der_encoder.c patch_dir/der_encoder.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/der_encoder.c 2011-03-31 10:22:56.000000000 +0200
--- patch_dir/der_encoder.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 3,9 ****
* Redistribution and modifications are permitted subject to BSD license.
*/
#include <asn_internal.h>
- #include <errno.h>
static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len,
asn_app_consume_bytes_f *cb, void *app_key, int constructed);
--- 3,8 ----
***************
*** 81,89 ****
--- 80,90 ----
asn_app_consume_bytes_f *cb,
void *app_key) {
ber_tlv_tag_t *tags; /* Copy of tags stream */
+ ber_tlv_tag_t tags_array[8];
int tags_count; /* Number of tags */
size_t overall_length;
ssize_t *lens;
+ ssize_t lens_array[8];
int i;
ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)",
***************
*** 102,111 ****
* and initialize it appropriately.
*/
int stag_offset;
! tags = (ber_tlv_tag_t *)alloca((sd->tags_count + 1) * sizeof(ber_tlv_tag_t));
if(!tags) { /* Can fail on !x86 */
! errno = ENOMEM;
! return -1;
}
tags_count = sd->tags_count
+ 1 /* EXPLICIT or IMPLICIT tag is given */
--- 103,121 ----
* and initialize it appropriately.
*/
int stag_offset;
! //tags = (ber_tlv_tag_t *)alloca((sd->tags_count + 1) * sizeof(ber_tlv_tag_t));
! tags = &(tags_array[0]);
! if ((sd->tags_count + 1)>=8) {
! #ifdef USER_MODE
! printf("der_encoder.c: ERROR tags array too small. Increase size!\n");
! exit(-1);
! #endif
! errno = ENOMEM;
! return -1;
! }
if(!tags) { /* Can fail on !x86 */
! errno = ENOMEM;
! return -1;
}
tags_count = sd->tags_count
+ 1 /* EXPLICIT or IMPLICIT tag is given */
***************
*** 124,135 ****
if(tags_count == 0)
return 0;
! lens = (ssize_t *)alloca(tags_count * sizeof(lens[0]));
if(!lens) {
! errno = ENOMEM;
! return -1;
}
!
/*
* Array of tags is initialized.
* Now, compute the size of the TLV pairs, from right to left.
--- 134,154 ----
if(tags_count == 0)
return 0;
! //lens = (ssize_t *)alloca(tags_count * sizeof(lens[0]));
! lens = &(lens_array[0]);
! if (tags_count>=8) {
! #ifdef USER_MODE
! printf("der_encoder.c: ERROR lens array too small. Increase size!\n");
! exit(-1);
! #endif
! errno = ENOMEM;
! return -1;
! }
if(!lens) {
! errno = ENOMEM;
! return -1;
}
!
/*
* Array of tags is initialized.
* Now, compute the size of the TLV pairs, from right to left.
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/INTEGER.c patch_dir/INTEGER.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/INTEGER.c 2011-03-31 10:22:56.000000000 +0200
--- patch_dir/INTEGER.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 6,12 ****
#include <asn_internal.h>
#include <INTEGER.h>
#include <asn_codecs_prim.h> /* Encoder and decoder of a primitive type */
- #include <errno.h>
/*
* INTEGER basic type description.
--- 6,11 ----
***************
*** 103,109 ****
static ssize_t
INTEGER__dump(asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) {
asn_INTEGER_specifics_t *specs=(asn_INTEGER_specifics_t *)td->specifics;
! char scratch[32]; /* Enough for 64-bit integer */
uint8_t *buf = st->buf;
uint8_t *buf_end = st->buf + st->size;
signed long accum;
--- 102,108 ----
static ssize_t
INTEGER__dump(asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) {
asn_INTEGER_specifics_t *specs=(asn_INTEGER_specifics_t *)td->specifics;
! char scratch[128];
uint8_t *buf = st->buf;
uint8_t *buf_end = st->buf + st->size;
signed long accum;
***************
*** 142,149 ****
--- 141,152 ----
el = INTEGER_map_value2enum(specs, accum);
if(el) {
+ scrsize = sizeof(scratch);
+ scr = scratch;
+ /* cannot use alloca in kernel
scrsize = el->enum_len + 32;
scr = (char *)alloca(scrsize);
+ */
if(plainOrXER == 0)
ret = snprintf(scr, scrsize,
"%ld (%s)", accum, el->enum_name);
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/NativeEnumerated.c patch_dir/NativeEnumerated.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/NativeEnumerated.c 2011-03-31 10:22:57.000000000 +0200
--- patch_dir/NativeEnumerated.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 46,51 ****
--- 46,52 ----
asn_app_consume_bytes_f *cb, void *app_key) {
asn_INTEGER_specifics_t *specs=(asn_INTEGER_specifics_t *)td->specifics;
asn_enc_rval_t er;
+ char scratch[128];
const long *native = (const long *)sptr;
const asn_INTEGER_enum_map_t *el;
***************
*** 57,63 ****
el = INTEGER_map_value2enum(specs, *native);
if(el) {
size_t srcsize = el->enum_len + 5;
! char *src = (char *)alloca(srcsize);
er.encoded = snprintf(src, srcsize, "<%s/>", el->enum_name);
assert(er.encoded > 0 && (size_t)er.encoded < srcsize);
--- 58,64 ----
el = INTEGER_map_value2enum(specs, *native);
if(el) {
size_t srcsize = el->enum_len + 5;
! char *src = (char *)scratch; //alloca(srcsize);
er.encoded = snprintf(src, srcsize, "<%s/>", el->enum_name);
assert(er.encoded > 0 && (size_t)er.encoded < srcsize);
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/OCTET_STRING.c patch_dir/OCTET_STRING.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/OCTET_STRING.c 2011-03-31 10:22:55.000000000 +0200
--- patch_dir/OCTET_STRING.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 6,12 ****
#include <asn_internal.h>
#include <OCTET_STRING.h>
#include <BIT_STRING.h> /* for .bits_unused member */
- #include <errno.h>
/*
* OCTET STRING basic type description.
--- 6,11 ----
diff -cB /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/xer_encoder.c patch_dir/xer_encoder.c
*** /homes/kaltenbe/Devel/openair/openair_branches/openair_lte/openair2/RRC/LITE/MESSAGES/asn1c/asn1c/skeletons/xer_encoder.c 2011-04-11 18:03:26.000000000 +0200
--- patch_dir/xer_encoder.c 2011-05-31 10:28:26.000000000 +0200
***************
*** 3,10 ****
* Redistribution and modifications are permitted subject to BSD license.
*/
#include <asn_internal.h>
! #include <stdio.h>
! #include <errno.h>
/*
* The XER encoder of any type. May be invoked by the application.
--- 3,10 ----
* Redistribution and modifications are permitted subject to BSD license.
*/
#include <asn_internal.h>
! //#include <stdio.h>
! //#include <errno.h>
/*
* The XER encoder of any type. May be invoked by the application.
***************
*** 41,46 ****
--- 41,47 ----
* This is a helper function for xer_fprint, which directs all incoming data
* into the provided file descriptor.
*/
+ #ifdef USER_MODE
static int
xer__print2fp(const void *buffer, size_t size, void *app_key) {
FILE *stream = (FILE *)app_key;
***************
*** 65,67 ****
--- 66,69 ----
return fflush(stream);
}
+ #endif
-19
View File
@@ -393,15 +393,7 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_
init_SI_UE(&ctxt,eNB_index);
LOG_D(RRC,PROTOCOL_RRC_CTXT_FMT" INIT: phy_sync_2_ch_ind\n",
PROTOCOL_RRC_CTXT_ARGS(&ctxt));
#ifndef NO_RRM
send_msg(&S_rrc,msg_rrc_phy_synch_to_CH_ind(ctxt.module_id,eNB_index,UE_rrc_inst[ctxt.module_id].Mac_id));
#endif
#ifndef NO_RRM
send_msg(&S_rrc,msg_rrc_phy_synch_to_CH_ind(ctxt.module_id,eNB_index,UE_rrc_inst[ctxt.module_id].Mac_id));
#endif
#ifdef NO_RRM //init ch SRB0, SRB1 & BDTCH
openair_rrc_on_ue(&ctxt);
#endif
return 0;
}
@@ -2249,9 +2241,6 @@ rrc_ue_decode_dcch(
}
}
#ifndef NO_RRM
send_msg(&S_rrc,msg_rrc_end_scan_req(ctxt_pP->module_id,eNB_indexP));
#endif
}
const char siWindowLength[9][5] = {"1ms","2ms","5ms","10ms","15ms","20ms","40ms","80ms","ERR"};
@@ -2530,14 +2519,6 @@ int decode_BCCH_MBMS_DLSCH_Message(
break;
}
}*/
/*if ((rrc_get_sub_state(ctxt_pP->module_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE)
#if defined(ENABLE_USE_MME)
&& (UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.data != NULL)
#endif
) {
rrc_ue_generate_RRCConnectionRequest(ctxt_pP, 0);
rrc_set_sub_state( ctxt_pP->module_id, RRC_SUB_STATE_IDLE_CONNECTING );
}*/
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_BCCH, VCD_FUNCTION_OUT );
return 0;
}
-13
View File
@@ -173,13 +173,6 @@ extern pthread_mutex_t slrb_mutex;
//the thread function
void *send_UE_status_notification(void *);
//#include "COMMON/openair_defs.h"
#ifndef USER_MODE
//#include <rtai.h>
#endif
#include "LTE_SystemInformationBlockType1.h"
#include "LTE_SystemInformation.h"
#include "LTE_RRCConnectionReconfiguration.h"
@@ -217,12 +210,6 @@ void *send_UE_status_notification(void *);
#define NB_SIG_CNX_UE 2 //MAX_MANAGED_RG_PER_MOBILE
#define NB_CNX_UE 2//MAX_MANAGED_RG_PER_MOBILE
#ifndef NO_RRM
#include "L3_rrc_interface.h"
#include "rrc_rrm_msg.h"
#include "rrc_rrm_interface.h"
#endif
#include "intertask_interface.h"
-8
View File
@@ -7279,9 +7279,6 @@ rrc_eNB_decode_ccch(
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
rrcConnectionReestablishmentRequest->ue_Identity.physCellId,
ue_context_p->ue_context.reestablishment_cause);
#ifndef NO_RRM
send_msg(&S_rrc, msg_rrc_MR_attach_ind(ctxt_pP->module_id, Mac_id));
#else
ue_context_p->ue_context.primaryCC_id = CC_id;
//LG COMMENT Idx = (ue_mod_idP * NB_RB_MAX) + DCCH;
Idx = DCCH;
@@ -7335,7 +7332,6 @@ rrc_eNB_decode_ccch(
);
}
#endif //NO_RRM
}
break;
@@ -7524,9 +7520,6 @@ rrc_eNB_decode_ccch(
}
}
#ifndef NO_RRM
send_msg(&S_rrc, msg_rrc_MR_attach_ind(ctxt_pP->module_id, Mac_id));
#else
ue_context_p->ue_context.primaryCC_id = CC_id;
//LG COMMENT Idx = (ue_mod_idP * NB_RB_MAX) + DCCH;
Idx = DCCH;
@@ -7579,7 +7572,6 @@ rrc_eNB_decode_ccch(
);
}
#endif //NO_RRM
break;
default:
-277
View File
@@ -1,277 +0,0 @@
/*
* 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
*/
/*!
*******************************************************************************
\file rrm_sock.c
\brief RRM (Radio Ressource Manager ) Socket: communication withe other medium:
- RRC ,
- CMM ,
- PUSU
\author BURLOT Pascal
\date 10/07/08
\par Historique:
P.BURLOT 2009-01-20
+ send a message via fifo:
- sending header
- and data if any
*******************************************************************************
*/
#ifndef RRC_RRM_FIFOS_XFACE
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>
#else
#include<rtai_fifos.h>
#endif
#include "rrc_rrm_interface.h"
#include "defs.h"
//! \brief Taille maximale de la charge utile
#define SIZE_MAX_PAYLOAD 2048
//! \brief PID de l'espace utilisateur (Netlink mode)
//#define PID_USERSPACE 0xAA
#ifndef RRC_RRM_FIFOS_XFACE
/*!
*******************************************************************************
\brief This function opens a unix socket for the rrm communication
\return The return value is a socket handle
*/
int open_socket(
sock_rrm_t *s, ///< socket descriptor
char *path_local, ///< local socket path if unix socket
char *path_dest, ///< host Socket path if unix socket
int rrm_inst ///< instance of the rrm entity
) {
/* Unix socket */
int socket_fd ;
int len ;
if ((socket_fd = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1) {
perror("unix socket");
return -1 ;
}
memset(&(s->un_local_addr), 0, sizeof(struct sockaddr_un));
s->un_local_addr.sun_family = AF_UNIX;
sprintf(s->un_local_addr.sun_path,"%s%d", path_local, rrm_inst );
unlink(s->un_local_addr.sun_path);
msg("local %s\n",s->un_local_addr.sun_path);
len = strlen((s->un_local_addr).sun_path) + sizeof((s->un_local_addr).sun_family);
if (bind(socket_fd, (struct sockaddr *)&(s->un_local_addr), len) == -1) {
perror("bind");
return -1 ;
}
memset(&(s->un_dest_addr), 0, sizeof(struct sockaddr_un));
s->un_dest_addr.sun_family = AF_UNIX;
sprintf(s->un_dest_addr.sun_path,"%s%d", path_dest, rrm_inst );
msg("Dest %s\n",s->un_dest_addr.sun_path);
s->s = socket_fd ;
return socket_fd ;
}
/*!
*******************************************************************************
\brief This function closes a RRM socket
\return none
*/
void close_socket(
sock_rrm_t *sock ///< the socket handle
) {
shutdown(sock->s, SHUT_RDWR);
close(sock->s);
}
/*!
*******************************************************************************
\brief This function send a buffer message to the unix socket
\return if OK then "0" is returned else "-1"
*/
char BUFF[2048];
int send_msg_sock(
sock_rrm_t *s, ///< socket descriptor
msg_t *smsg ///< the message to send
) {
/* Unix socket */
int ret = 0 ;
// char *buf = NULL;
struct msghdr msghd ;
struct iovec iov;
int taille = sizeof(msg_head_t) ;
if ( smsg == NULL ) {
return -1 ;
}
if ( smsg->data != NULL ) {
taille += smsg->head.size ;
}
//buf = RRM_MALLOC(char, taille);
//if (buf ==NULL)
//return -1 ;
memcpy( BUFF, &(smsg->head), sizeof(msg_head_t) ) ;
memcpy( BUFF+sizeof(msg_head_t), smsg->data, smsg->head.size ) ;
iov.iov_base = (void *)BUFF;
iov.iov_len = taille ;
msghd.msg_name = (void *)&(s->un_dest_addr);
msghd.msg_namelen = sizeof(s->un_dest_addr);
msghd.msg_iov = &iov;
msghd.msg_iovlen = 1;
msghd.msg_control = NULL ;
msghd.msg_controllen = 0 ;
if ( sendmsg(s->s, &msghd, 0) < 0 ) {
ret = -1;
msg("socket %d, dest %s\n",s->s,s->un_dest_addr.sun_path);
perror("sendmsg:unix socket");
}
//RRM_FREE(buf) ;
//RRM_FREE(msg->data) ;
//RRM_FREE(msg) ;
return ret ;
}
/*!
*******************************************************************************
\brief This function read a buffer from a unix socket
\return the function returns a message pointer. If the pointeur is NULL, a error
is happened.
*/
char *recv_msg(
sock_rrm_t *s ///< socket descriptor
) {
/* Unix socket */
char *buf = NULL;
char *smsg = NULL;
struct msghdr msghd ;
struct iovec iov;
int size_msg ;
msg_head_t *head ;
int ret ;
int taille = SIZE_MAX_PAYLOAD ;
buf = RRM_CALLOC( char,taille);
if ( buf == NULL ) {
return NULL ;
}
iov.iov_base = (void *)buf;
iov.iov_len = taille ;
msghd.msg_name = (void *)&(s->un_dest_addr);
msghd.msg_namelen = sizeof(s->un_dest_addr);
msghd.msg_iov = &iov;
msghd.msg_iovlen = 1;
msghd.msg_control = NULL ;
msghd.msg_controllen= 0 ;
ret = recvmsg(s->s, &msghd, 0 ) ;
if ( ret <= 0 ) {
// non-blocking socket
// perror("PB recvmsg_un");
RRM_FREE(buf);
return NULL ;
}
if (msghd.msg_flags != 0 ) {
fprintf(stderr,"error recvmsg_un: 0x%02x\n", msghd.msg_flags) ;
RRM_FREE(buf);
return NULL ;
}
head = (msg_head_t *) buf ;
size_msg = sizeof(msg_head_t) + head->size ;
smsg = RRM_CALLOC(char, size_msg ) ;
if ( smsg != NULL ) {
memcpy( smsg, buf, size_msg ) ;
}
RRM_FREE( buf ) ;
return smsg ;
}
#else //XFACE
int send_msg_fifo(int *s, msg_t *fmsg) {
int ret = 0, ret1;
int taille = sizeof(msg_head_t) ;
msg("write on fifos %d, msg %p\n",*s,fmsg);
if ( fmsg == NULL ) {
return -1 ;
}
// envoi le header
ret1 = rtf_put (*s,(char *) &(fmsg->head), taille);
if(ret1 <0) {
msg("rtf_put H ERR %d\n",ret1);
rtf_reset(*s);
return ret1;
}
ret=ret1;
// envoi les datas si elles sont definis
if ( fmsg->data != NULL ) {
ret1 += rtf_put (*s,(char *) fmsg->data, fmsg->head.size);
if(ret1 <0) {
msg("rtf_put D ERR %d\n",ret1);
rtf_reset(*s);
return ret1;
}
}
ret+=ret1;
return ret;
}
#endif //XFACE
int send_msg(void *s, msg_t *smsg) {
send_msg_sock((sock_rrm_t *)s, smsg);
}
-12
View File
@@ -133,18 +133,6 @@
#include "common/ran_context.h"
//#include "PHY/defs.h"
/*#ifndef USER_MODE
#define msg printk
#ifndef errno
int errno;
#endif
#else
# if !defined (msg)
# define msg printf
# endif
#endif*/
//#define XER_PRINT
typedef struct xer_sprint_string_s {
-51
View File
@@ -3274,57 +3274,6 @@ void *rrc_gnb_task(void *args_p) {
case GTPV1U_GNB_DELETE_TUNNEL_RESP:
break;
/*
#if defined(ENABLE_USE_MME)
// Messages from S1AP
case S1AP_DOWNLINK_NAS:
rrc_eNB_process_S1AP_DOWNLINK_NAS(msg_p, msg_name_p, instance, &rrc_gNB_mui);
break;
case S1AP_INITIAL_CONTEXT_SETUP_REQ:
rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(msg_p, msg_name_p, instance);
break;
case S1AP_UE_CTXT_MODIFICATION_REQ:
rrc_eNB_process_S1AP_UE_CTXT_MODIFICATION_REQ(msg_p, msg_name_p, instance);
break;
case S1AP_PAGING_IND:
LOG_D(RRC, "[eNB %d] Received Paging message from S1AP: %s\n", instance, msg_name_p);
rrc_eNB_process_PAGING_IND(msg_p, msg_name_p, instance);
break;
case S1AP_E_RAB_SETUP_REQ:
rrc_eNB_process_S1AP_E_RAB_SETUP_REQ(msg_p, msg_name_p, instance);
LOG_D(RRC, "[eNB %d] Received the message %s\n", instance, msg_name_p);
break;
case S1AP_E_RAB_MODIFY_REQ:
rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(msg_p, msg_name_p, instance);
break;
case S1AP_E_RAB_RELEASE_COMMAND:
rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(msg_p, msg_name_p, instance);
break;
case S1AP_UE_CONTEXT_RELEASE_REQ:
rrc_eNB_process_S1AP_UE_CONTEXT_RELEASE_REQ(msg_p, msg_name_p, instance);
break;
case S1AP_UE_CONTEXT_RELEASE_COMMAND:
rrc_eNB_process_S1AP_UE_CONTEXT_RELEASE_COMMAND(msg_p, msg_name_p, instance);
break;
case GTPV1U_ENB_DELETE_TUNNEL_RESP:
///Nothing to do. Apparently everything is done in S1AP processing
//LOG_I(RRC, "[eNB %d] Received message %s, not processed because procedure not synched\n",
//instance, msg_name_p);
AssertFatal(false, "Removed double mechanism for same feature: now delete_tunnel() function should be called\n");
break;
#endif
*/
/* Messages from gNB app */
case NRRRC_CONFIGURATION_REQ:
LOG_I(NR_RRC, "[gNB %ld] Received %s : %p\n", instance, msg_name_p,&NRRRC_CONFIGURATION_REQ(msg_p));
+1 -1
View File
@@ -111,4 +111,4 @@
#define RRC_LIST_ENTRY(list, i) \
list.entries[i]
#endif
#endif