Merge remote-tracking branch 'origin/develop' into agent-performance
This commit is contained in:
@@ -275,6 +275,7 @@ endif (${RTAI})
|
||||
# New C code source file, cmake must be re-run (instead of re-running make only)
|
||||
#############
|
||||
set(asn1c_call "${OPENAIR_CMAKE}/tools/generate_asn1")
|
||||
set(fix_asn1c_call "${OPENAIR_CMAKE}/tools/fix_asn1")
|
||||
set(asn1_generated_dir ${OPENAIR_BIN_DIR})
|
||||
|
||||
set(protoc_call "${OPENAIR_CMAKE}/tools/generate_protobuf")
|
||||
@@ -296,7 +297,19 @@ set (RRC_FULL_DIR ${asn1_generated_dir}/${RRC_ASN1_VERSION})
|
||||
if(NOT EXISTS ${asn1c_call})
|
||||
message( FATAL_ERROR "The script ${asn1c_call} must be present" )
|
||||
endif(NOT EXISTS ${asn1c_call})
|
||||
execute_process(COMMAND ${asn1c_call} ${RRC_FULL_DIR} ${RRC_GRAMMAR})
|
||||
execute_process(COMMAND ${asn1c_call} ${RRC_FULL_DIR} ${RRC_GRAMMAR}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "${asn1c_call}: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
if(NOT EXISTS ${fix_asn1c_call})
|
||||
message( FATAL_ERROR "The script ${fix_asn1c_call} must be present" )
|
||||
endif(NOT EXISTS ${fix_asn1c_call})
|
||||
execute_process(COMMAND ${fix_asn1c_call} ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "${fix_asn1c_call}: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
file(GLOB rrc_source ${RRC_FULL_DIR}/*.c)
|
||||
set(rrc_source ${rrc_source} ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg.c)
|
||||
file(GLOB rrc_h ${RRC_FULL_DIR}/*.h)
|
||||
@@ -310,6 +323,7 @@ include_directories ("${RRC_FULL_DIR}")
|
||||
add_custom_command (
|
||||
OUTPUT ${RRC_FULL_DIR}/asn1_constants.h
|
||||
COMMAND ${asn1c_call} ${RRC_FULL_DIR} ${RRC_GRAMMAR}
|
||||
COMMAND ${fix_asn1c_call} ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION}
|
||||
DEPENDS ${RRC_GRAMMAR}
|
||||
)
|
||||
|
||||
@@ -338,7 +352,21 @@ set(S1AP_ASN_FILES
|
||||
)
|
||||
set(S1AP_C_DIR ${asn1_generated_dir}/${ASN1RELDIR})
|
||||
#message("calling ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}")
|
||||
execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES})
|
||||
execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "${asn1c_call}: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
execute_process(COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "asn1tostruct.py: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
execute_process(COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_VERSION}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "${fix_asn1c_call}: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
file(GLOB S1AP_source ${S1AP_C_DIR}/*.c)
|
||||
|
||||
set(S1AP_OAI_generated
|
||||
@@ -355,6 +383,7 @@ add_custom_command (
|
||||
OUTPUT ${S1AP_OAI_generated}
|
||||
COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
|
||||
COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
|
||||
COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_VERSION}
|
||||
DEPENDS ${S1AP_ASN_FILES}
|
||||
)
|
||||
add_library(S1AP_LIB
|
||||
@@ -406,7 +435,21 @@ set(X2AP_ASN_FILES
|
||||
|
||||
set(X2AP_C_DIR ${asn1_generated_dir}/${ASN1RELDIR})
|
||||
#message("calling ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}")
|
||||
execute_process(COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES})
|
||||
execute_process(COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "${asn1c_call}: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
execute_process(COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "asn1tostruct.py: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
execute_process(COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_VERSION}
|
||||
RESULT_VARIABLE ret)
|
||||
if (NOT ${ret} STREQUAL 0)
|
||||
message(FATAL_ERROR "${fix_asn1c_call}: error")
|
||||
endif (NOT ${ret} STREQUAL 0)
|
||||
file(GLOB X2AP_source ${X2AP_C_DIR}/*.c)
|
||||
|
||||
set(X2AP_OAI_generated
|
||||
@@ -423,6 +466,7 @@ add_custom_command (
|
||||
OUTPUT ${X2AP_OAI_generated}
|
||||
COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
|
||||
COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}
|
||||
COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_VERSION}
|
||||
DEPENDS ${X2AP_ASN_FILES}
|
||||
)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ test_compile() {
|
||||
compile_prog=$2
|
||||
exec_prog=$3
|
||||
build_dir=$tdir/$1/build
|
||||
log_file=$tdir/log/test.$1.txt
|
||||
log_file=$tdir/log/test.$1.$2.$5.txt
|
||||
target=$5
|
||||
echo "Compiling test case $test_name. Log file = $log_file"
|
||||
rm -fr $build_dir
|
||||
@@ -34,10 +34,10 @@ test_compile() {
|
||||
if [ -s $exec_prog ] ; then
|
||||
cp $exec_prog $tdir/bin/`basename $exec_prog`.$target.$test_name
|
||||
echo_success "$test_name $exec_prog $target compiled"
|
||||
xUnit_success "compilation" $test_name "PASS" 1
|
||||
xUnit_success "compilation" $test_name "PASS" 1 "$results_file"
|
||||
else
|
||||
echo_error "$test_name $exec_prog $target compilation failed"
|
||||
xUnit_fail "compilation" $test_name "FAIL" 1
|
||||
xUnit_fail "compilation" $test_name "FAIL" 1 "$results_file"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Executable
+177
@@ -0,0 +1,177 @@
|
||||
#!/bin/bash
|
||||
|
||||
# in those arrays, each line is:
|
||||
# <file> <sha1sum of file (without line 4 which changes depending on the location of the files)> <patch to apply to file>
|
||||
|
||||
RRC_Rel10=(
|
||||
"SystemInformation-r8-IEs.h" 603cd6615cff36ec7020692d72c0d6de7c4859cb "fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff"
|
||||
)
|
||||
|
||||
X2AP_Rel11_2=(
|
||||
"X2ap-CriticalityDiagnostics-IE-List.h" ae96308b37fcbcbf39da5012e42968135fc5f27b "fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff"
|
||||
"NativeInteger.c" 1a55f5402fd363318cf5444ffe1f67530dcf66ff "fix_asn1.data/X2AP.rel11.2/NativeInteger.c.diff"
|
||||
"constr_SET_OF.c" 808cbbdf19b118c0bdb04e3acf2cbe6e4133be2b "fix_asn1.data/X2AP.rel11.2/constr_SET_OF.c.diff"
|
||||
)
|
||||
|
||||
S1AP_Rel10_5=(
|
||||
"NativeInteger.c" 1a55f5402fd363318cf5444ffe1f67530dcf66ff "fix_asn1.data/S1AP.rel10.5/NativeInteger.c.diff"
|
||||
"constr_SET_OF.c" 808cbbdf19b118c0bdb04e3acf2cbe6e4133be2b "fix_asn1.data/S1AP.rel10.5/constr_SET_OF.c.diff"
|
||||
)
|
||||
|
||||
red_color="$(tput setaf 1)"
|
||||
green_color="$(tput setaf 2)"
|
||||
reset_color="$(tput sgr0)"
|
||||
|
||||
function error()
|
||||
{
|
||||
echo -e "$red_color"ERROR: "$@""$reset_color"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function check_sha1()
|
||||
{
|
||||
local file="$1"
|
||||
local target_sha1="$2"
|
||||
|
||||
if [ ! -f "$file" ]
|
||||
then
|
||||
error "$file: no such file"
|
||||
fi
|
||||
|
||||
# we don't use the line 4 of the file
|
||||
# it contains the location of the ASN1 grammar
|
||||
# and this location is not the same on every
|
||||
# installation (this is for *.h files, for *.c
|
||||
# files it's no big deal to skip that line)
|
||||
local computed_sha1=$(sed 4d "$file" | sha1sum | cut -f 1 -d ' ')
|
||||
|
||||
if [ "$target_sha1" != "$computed_sha1" ]
|
||||
then
|
||||
error "$file: wrong SHA1"
|
||||
fi
|
||||
}
|
||||
|
||||
function patch_file()
|
||||
{
|
||||
local patch="$1"
|
||||
local file="$2"
|
||||
|
||||
echo -e "$green_color""patch file $file with $OPENAIR_DIR/cmake_targets/tools/$patch""$reset_color"
|
||||
|
||||
patch "$file" "$OPENAIR_DIR/cmake_targets/tools/$patch"
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
error "patching of $file with $OPENAIR_DIR/cmake_targets/tools/$patch failed"
|
||||
fi
|
||||
}
|
||||
|
||||
function apply_patches()
|
||||
{
|
||||
local directory="$1"
|
||||
local array=$2
|
||||
local len=$3 # the length could be computed locally but the way to do it is not clear to me [CROUX]
|
||||
|
||||
local i
|
||||
local file
|
||||
local sha1
|
||||
local patch
|
||||
local item
|
||||
|
||||
for (( i = 0; i < $len; i += 3 ))
|
||||
do
|
||||
# special bash syntax to access the array
|
||||
item=$array[$i]; file=${!item}
|
||||
item=$array[$((i+1))]; sha1=${!item}
|
||||
item=$array[$((i+2))]; patch=${!item}
|
||||
check_sha1 "$directory/$file" "$sha1"
|
||||
patch_file "$patch" "$directory/$file"
|
||||
done
|
||||
}
|
||||
|
||||
function patch_rrc()
|
||||
{
|
||||
local directory="$1"
|
||||
local version="$2"
|
||||
|
||||
case "$version" in
|
||||
Rel10 )
|
||||
echo "patching RRC files release 10"
|
||||
apply_patches "$directory" RRC_Rel10 ${#RRC_Rel10[*]}
|
||||
;;
|
||||
Rel8 )
|
||||
echo "patching RRC files release 8 TODO?"
|
||||
;;
|
||||
* )
|
||||
error unknwon/unhandled RRC version \'"$version"\'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function patch_x2ap()
|
||||
{
|
||||
local directory="$1"
|
||||
local version="$2"
|
||||
|
||||
case "$version" in
|
||||
R11 )
|
||||
echo "patching X2AP files release 11.2"
|
||||
apply_patches "$directory" X2AP_Rel11_2 ${#X2AP_Rel11_2[*]}
|
||||
;;
|
||||
* )
|
||||
error unknwon/unhandled X2AP version \'"$version"\'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function patch_s1ap()
|
||||
{
|
||||
local directory="$1"
|
||||
local version="$2"
|
||||
|
||||
case "$version" in
|
||||
R10 )
|
||||
echo "patching S1AP files release 10.5"
|
||||
apply_patches "$directory" S1AP_Rel10_5 ${#S1AP_Rel10_5[*]}
|
||||
;;
|
||||
* )
|
||||
error unknwon/unhandled S1AP version \'"$version"\'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function main()
|
||||
{
|
||||
if [ $# -ne 3 ]
|
||||
then
|
||||
echo "ERROR: pass <output directory> <module> <version>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$OPENAIR_DIR" = x ]
|
||||
then
|
||||
error "the variable OPENAIR_DIR is not set"
|
||||
fi
|
||||
|
||||
local directory="$1"
|
||||
local module="$2"
|
||||
local version="$3"
|
||||
|
||||
case "$module" in
|
||||
RRC )
|
||||
patch_rrc "$directory" "$version"
|
||||
;;
|
||||
X2AP )
|
||||
patch_x2ap "$directory" "$version"
|
||||
;;
|
||||
S1AP )
|
||||
patch_s1ap "$directory" "$version"
|
||||
;;
|
||||
* )
|
||||
error unknown module "$module"
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,23 @@
|
||||
57,61d56
|
||||
< /* SystemInformation-r8-IEs */
|
||||
< typedef struct SystemInformation_r8_IEs {
|
||||
< struct SystemInformation_r8_IEs__sib_TypeAndInfo {
|
||||
< A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
|
||||
< SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
|
||||
79c74,78
|
||||
< } choice;
|
||||
---
|
||||
> };
|
||||
>
|
||||
> struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
|
||||
> SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
|
||||
> union SystemInformation_r8_IEs__sib_TypeAndInfo__Member_u choice;
|
||||
83c82,87
|
||||
< } ) list;
|
||||
---
|
||||
> };
|
||||
>
|
||||
> /* SystemInformation-r8-IEs */
|
||||
> typedef struct SystemInformation_r8_IEs {
|
||||
> struct SystemInformation_r8_IEs__sib_TypeAndInfo {
|
||||
> A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member) list;
|
||||
@@ -0,0 +1,8 @@
|
||||
283c283
|
||||
< int dynamic = 0;
|
||||
---
|
||||
> //int dynamic = 0;
|
||||
290c290
|
||||
< dynamic = 1;
|
||||
---
|
||||
> //dynamic = 1;
|
||||
@@ -0,0 +1,4 @@
|
||||
1007c1007
|
||||
< (int)nelems, (int)ct ? ct->effective_bits : -1);
|
||||
---
|
||||
> (int)nelems, ct ? ct->effective_bits : -1);
|
||||
@@ -0,0 +1,8 @@
|
||||
283c283
|
||||
< int dynamic = 0;
|
||||
---
|
||||
> //int dynamic = 0;
|
||||
290c290
|
||||
< dynamic = 1;
|
||||
---
|
||||
> //dynamic = 1;
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
29,31c29
|
||||
< /* X2ap-CriticalityDiagnostics-IE-List */
|
||||
< typedef struct X2ap_CriticalityDiagnostics_IE_List {
|
||||
< A_SEQUENCE_OF(struct X2ap_CriticalityDiagnostics_IE_List__Member {
|
||||
---
|
||||
> struct X2ap_CriticalityDiagnostics_IE_List__Member {
|
||||
43c41,46
|
||||
< } ) list;
|
||||
---
|
||||
> };
|
||||
>
|
||||
> /* X2ap-CriticalityDiagnostics-IE-List */
|
||||
> typedef struct X2ap_CriticalityDiagnostics_IE_List {
|
||||
> A_SEQUENCE_OF(struct X2ap_CriticalityDiagnostics_IE_List__Member
|
||||
> ) list;
|
||||
@@ -0,0 +1,4 @@
|
||||
1007c1007
|
||||
< (int)nelems, (int)ct ? ct->effective_bits : -1);
|
||||
---
|
||||
> (int)nelems, ct ? ct->effective_bits : -1);
|
||||
@@ -35,7 +35,7 @@ xUnit_fail() {
|
||||
currtime=$(date +%s.%N)
|
||||
time=$(echo "$currtime - $XUNIT_START" | bc -l)
|
||||
xml="<testcase classname='$class' name='$test_case' Run_result='$run_result' time='$time s' RESULT='$result'></testcase>"
|
||||
echo -e $xml >> $xmlfile_testcase
|
||||
echo -e "$xml" >> "$xmlfile_testcase"
|
||||
XUNIT_TESTCASES_XML="$XUNIT_TESTCASES_XML \n$xml"
|
||||
XUNIT_FAILED=$((XUNIT_FAILED+1))
|
||||
}
|
||||
|
||||
@@ -177,7 +177,6 @@ hashtable_rc_t hashtable_dump_content (const hash_table_t * const hashtblP, char
|
||||
{
|
||||
hash_node_t *node = NULL;
|
||||
unsigned int i = 0;
|
||||
unsigned int num_elements = 0;
|
||||
if (hashtblP == NULL) {
|
||||
*remaining_bytes_in_buffer_pP = snprintf(
|
||||
buffer_pP,
|
||||
|
||||
@@ -54,7 +54,9 @@ uint64_t vcd_mp_free;
|
||||
#endif
|
||||
|
||||
/*------------------------------------------------------------------------------*/
|
||||
#ifndef CHARS_TO_UINT32
|
||||
#define CHARS_TO_UINT32(c1, c2, c3, c4) (((c1) << 24) | ((c2) << 16) | ((c3) << 8) | (c4))
|
||||
#endif
|
||||
|
||||
#define MEMORY_POOL_ITEM_INFO_NUMBER 2
|
||||
|
||||
|
||||
@@ -128,8 +128,8 @@ void phy_config_sib2_eNB(uint8_t Mod_id,
|
||||
{
|
||||
|
||||
LTE_DL_FRAME_PARMS *lte_frame_parms = &PHY_vars_eNB_g[Mod_id][CC_id]->lte_frame_parms;
|
||||
LTE_eNB_UE_stats *eNB_UE_stats = PHY_vars_eNB_g[Mod_id][CC_id]->eNB_UE_stats;
|
||||
int32_t rx_total_gain_eNB_dB = PHY_vars_eNB_g[Mod_id][CC_id]->rx_total_gain_eNB_dB;
|
||||
//LTE_eNB_UE_stats *eNB_UE_stats = PHY_vars_eNB_g[Mod_id][CC_id]->eNB_UE_stats;
|
||||
//int32_t rx_total_gain_eNB_dB = PHY_vars_eNB_g[Mod_id][CC_id]->rx_total_gain_eNB_dB;
|
||||
int i;
|
||||
|
||||
LOG_D(PHY,"[eNB%d] CCid %d Frame %d: Applying radioResourceConfigCommon\n",Mod_id,CC_id,PHY_vars_eNB_g[Mod_id][CC_id]->proc[8].frame_tx);
|
||||
@@ -683,11 +683,11 @@ void phy_config_dedicated_scell_eNB(uint8_t Mod_id,
|
||||
int CC_id)
|
||||
{
|
||||
|
||||
PHY_VARS_eNB *phy_vars_eNB = PHY_vars_eNB_g[Mod_id][CC_id];
|
||||
//PHY_VARS_eNB *phy_vars_eNB = PHY_vars_eNB_g[Mod_id][CC_id];
|
||||
uint8_t UE_id = find_ue(rnti,PHY_vars_eNB_g[Mod_id][0]);
|
||||
struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10 = sCellToAddMod_r10->radioResourceConfigDedicatedSCell_r10->physicalConfigDedicatedSCell_r10;
|
||||
//struct RadioResourceConfigCommonSCell_r10 *physicalConfigCommonSCell_r10 = sCellToAddMod_r10->radioResourceConfigCommonSCell_r10;
|
||||
PhysCellId_t physCellId_r10 = sCellToAddMod_r10->cellIdentification_r10->physCellId_r10;
|
||||
//PhysCellId_t physCellId_r10 = sCellToAddMod_r10->cellIdentification_r10->physCellId_r10;
|
||||
ARFCN_ValueEUTRA_t dl_CarrierFreq_r10 = sCellToAddMod_r10->cellIdentification_r10->dl_CarrierFreq_r10;
|
||||
uint32_t carrier_freq_local;
|
||||
|
||||
@@ -733,7 +733,7 @@ void phy_config_dedicated_scell_eNB(uint8_t Mod_id,
|
||||
}
|
||||
|
||||
if (physicalConfigDedicatedSCell_r10) {
|
||||
#warning " phy_vars_eNB->physicalConfigDedicatedSCell_r10 does not exist in phy_vars_eNB"
|
||||
//#warning " phy_vars_eNB->physicalConfigDedicatedSCell_r10 does not exist in phy_vars_eNB"
|
||||
// phy_vars_eNB->physicalConfigDedicatedSCell_r10[UE_id] = physicalConfigDedicatedSCell_r10;
|
||||
LOG_I(PHY,"[eNB %d] Frame %d: Configured phyConfigDedicatedSCell with CC_id %d for UE %d\n",Mod_id,/*phy_vars_eNB->frame*/0,CC_id,UE_id);
|
||||
} else {
|
||||
|
||||
@@ -48,15 +48,15 @@ void lte_eNB_I0_measurements(PHY_VARS_eNB *phy_vars_eNB,
|
||||
LTE_eNB_COMMON *eNB_common_vars = &phy_vars_eNB->lte_eNB_common_vars;
|
||||
LTE_DL_FRAME_PARMS *frame_parms = &phy_vars_eNB->lte_frame_parms;
|
||||
PHY_MEASUREMENTS_eNB *phy_measurements = &phy_vars_eNB->PHY_measurements_eNB[eNB_id];
|
||||
int32_t *rb_mask = phy_vars_eNB->rb_mask_ul;
|
||||
uint32_t *rb_mask = phy_vars_eNB->rb_mask_ul;
|
||||
|
||||
uint32_t aarx,rx_power_correction;
|
||||
uint32_t aarx /* ,rx_power_correction */;
|
||||
uint32_t rb;
|
||||
int32_t *ul_ch;
|
||||
int32_t n0_power_tot;
|
||||
int len;
|
||||
int offset;
|
||||
int Nsymb = (frame_parms->Ncp==NORMAL)?14:12;
|
||||
//int Nsymb = (frame_parms->Ncp==NORMAL)?14:12;
|
||||
// noise measurements
|
||||
// for the moment we measure the noise on the 7th OFDM symbol (in S subframe)
|
||||
|
||||
|
||||
@@ -572,7 +572,7 @@ void lte_ue_measurements(PHY_VARS_UE *phy_vars_ue,
|
||||
// skip the first 4 RE due to interpolation filter length of 5 (not possible to skip 5 due to 128i alignment, must be multiple of 128bit)
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i pmi128_re,pmi128_im,mmtmpPMI0,mmtmpPMI1,mmtmpPMI2,mmtmpPMI3;
|
||||
__m128i pmi128_re,pmi128_im,mmtmpPMI0,mmtmpPMI1 /* ,mmtmpPMI2,mmtmpPMI3 */ ;
|
||||
|
||||
dl_ch0_128 = (__m128i *)&phy_vars_ue->lte_ue_common_vars.dl_ch_estimates[eNB_id][aarx][4];
|
||||
dl_ch1_128 = (__m128i *)&phy_vars_ue->lte_ue_common_vars.dl_ch_estimates[eNB_id][2+aarx][4];
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "PHY/CODING/extern.h"
|
||||
#include "PHY/CODING/lte_interleaver_inline.h"
|
||||
#include "PHY/LTE_TRANSPORT/defs.h"
|
||||
#include "SCHED/defs.h"
|
||||
#include "defs.h"
|
||||
#include "UTIL/LOG/vcd_signal_dumper.h"
|
||||
|
||||
|
||||
+6
-4
@@ -65,10 +65,12 @@
|
||||
//use msg in the real-time thread context
|
||||
#define msg_nrt printf
|
||||
//use msg_nrt in the non real-time context (for initialization, ...)
|
||||
#ifdef __AVX2__
|
||||
#define malloc16(x) memalign(32,x)
|
||||
#else
|
||||
#define malloc16(x) memalign(16,x)
|
||||
#ifndef malloc16
|
||||
# ifdef __AVX2__
|
||||
# define malloc16(x) memalign(32,x)
|
||||
# else
|
||||
# define malloc16(x) memalign(16,x)
|
||||
# endif
|
||||
#endif
|
||||
#define free16(y,x) free(y)
|
||||
#define bigmalloc malloc
|
||||
|
||||
@@ -54,11 +54,11 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e
|
||||
{
|
||||
|
||||
int i;
|
||||
uint8_t cooperation_flag = phy_vars_eNB->cooperation_flag;
|
||||
//uint8_t cooperation_flag = phy_vars_eNB->cooperation_flag;
|
||||
uint8_t transmission_mode = phy_vars_eNB->transmission_mode[0];
|
||||
|
||||
uint32_t rballoc = 0x7FFF;
|
||||
uint32_t rballoc2 = 0x000F;
|
||||
//uint32_t rballoc2 = 0x000F;
|
||||
int subframe = phy_vars_eNB->proc[sched_subframe].subframe_tx;
|
||||
|
||||
LTE_eNB_DLSCH_t *DLSCH_ptr = phy_vars_eNB->dlsch_eNB[0][0];
|
||||
@@ -585,7 +585,7 @@ void fill_dci_emos(DCI_PDU *DCI_pdu, uint8_t subframe, PHY_VARS_eNB *phy_vars_eN
|
||||
{
|
||||
|
||||
int i;
|
||||
uint8_t cooperation_flag = phy_vars_eNB->cooperation_flag;
|
||||
//uint8_t cooperation_flag = phy_vars_eNB->cooperation_flag;
|
||||
uint8_t transmission_mode = phy_vars_eNB->transmission_mode[0];
|
||||
|
||||
//uint32_t rballoc = 0x00F0;
|
||||
|
||||
@@ -618,6 +618,7 @@ void phy_eNB_lte_check_measurement_thresholds(instance_t instanceP, ral_threshol
|
||||
#endif
|
||||
|
||||
|
||||
unsigned int taus(void);
|
||||
|
||||
void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_eNB,uint8_t abstraction_flag,
|
||||
relaying_type_t r_type,PHY_VARS_RN *phy_vars_rn)
|
||||
@@ -1836,6 +1837,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
|
||||
stop_meas(&phy_vars_eNB->phy_proc_tx);
|
||||
|
||||
|
||||
(void)re_allocated; /* remove gcc warning "set but not used" */
|
||||
}
|
||||
|
||||
void process_Msg3(PHY_VARS_eNB *phy_vars_eNB,uint8_t sched_subframe,uint8_t UE_id, uint8_t harq_pid)
|
||||
@@ -2507,6 +2509,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
|
||||
}
|
||||
|
||||
sect_id = 0;
|
||||
(void)sect_id; /* remove gcc warning "set but not used" */
|
||||
|
||||
/*
|
||||
for (UE_id=0;UE_id<NUMBER_OF_UE_MAX;UE_id++) {
|
||||
@@ -3618,6 +3621,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
|
||||
|
||||
} // loop i=0 ... NUMBER_OF_UE_MAX-1
|
||||
|
||||
(void)pusch_active; /* remove gcc warning "set but not used" */
|
||||
// if (pusch_active == 0) {
|
||||
if (abstraction_flag == 0) {
|
||||
// LOG_D(PHY,"[eNB] Frame %d, subframe %d Doing I0_measurements\n",
|
||||
|
||||
@@ -902,6 +902,8 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
|
||||
}
|
||||
*/
|
||||
|
||||
unsigned int taus(void);
|
||||
|
||||
for (i=0; i<input_buffer_length; i++)
|
||||
ulsch_input_buffer[i]= (uint8_t)(taus()&0xff);
|
||||
|
||||
|
||||
@@ -46,16 +46,16 @@ int8_t pucch_power_cntl(PHY_VARS_UE *phy_vars_ue,uint8_t subframe,uint8_t eNB_id
|
||||
{
|
||||
|
||||
int8_t Po_PUCCH;
|
||||
uint8_t harq_pid;
|
||||
//uint8_t harq_pid;
|
||||
|
||||
// P_pucch = P_opucch+ PL + h(nCQI,nHARQ) + delta_pucchF(pucch_fmt) + g(i))
|
||||
//
|
||||
if ((pucch_fmt == pucch_format1a) ||
|
||||
(pucch_fmt == pucch_format1b)) { // Update g_pucch based on TPC/delta_PUCCH received in PDCCH for this process
|
||||
harq_pid = phy_vars_ue->dlsch_ue[eNB_id][0]->harq_ack[subframe].harq_id;
|
||||
//if ((pucch_fmt == pucch_format1a) ||
|
||||
// (pucch_fmt == pucch_format1b)) { // Update g_pucch based on TPC/delta_PUCCH received in PDCCH for this process
|
||||
//harq_pid = phy_vars_ue->dlsch_ue[eNB_id][0]->harq_ack[subframe].harq_id;
|
||||
//this is now done in dci_tools
|
||||
//phy_vars_ue->g_pucch[eNB_id] += phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[harq_pid]->delta_PUCCH;
|
||||
}
|
||||
//}
|
||||
|
||||
Po_PUCCH = get_PL(phy_vars_ue->Mod_id,phy_vars_ue->CC_id,eNB_id)+
|
||||
phy_vars_ue->lte_frame_parms.ul_power_control_config_common.p0_NominalPUCCH+
|
||||
|
||||
@@ -81,7 +81,7 @@ int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *phy_vars_eNB,uint8_t UE_id,
|
||||
//(phy_vars_eNB->ulsch_eNB[UE_id]->harq_processes[harq_pid]->control_only == 1) ? phy_vars_eNB->ulsch_eNB[UE_id]->beta_offset_cqi_times8:8;
|
||||
|
||||
DevAssert( UE_id < NUMBER_OF_UE_MAX );
|
||||
#warning "This condition happens sometimes. Need more investigation" // navid
|
||||
//#warning "This condition happens sometimes. Need more investigation" // navid
|
||||
//DevAssert( MPR_x100/6 < 100 );
|
||||
|
||||
if (phy_vars_eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled == 1) {
|
||||
|
||||
@@ -288,7 +288,7 @@ int emu_transport_handle_ue_info(bypass_msg_header_t *messg,
|
||||
n_ue, total_header+total_tbs,total_header,total_tbs);
|
||||
}
|
||||
|
||||
#warning "CC id should be adjusted, set to zero for the moment"
|
||||
//#warning "CC id should be adjusted, set to zero for the moment"
|
||||
memcpy(&UE_transport_info[n_ue][CC_id], UE_info, total_header + total_tbs);
|
||||
|
||||
/* Go to the next UE info */
|
||||
|
||||
@@ -291,7 +291,6 @@ void fill_phy_enb_vars(unsigned int enb_id, uint8_t CC_id,unsigned int next_slot
|
||||
LTE_eNB_DLSCH_t *dlsch_eNB;
|
||||
unsigned short ue_id;
|
||||
uint8_t nb_total_dci;
|
||||
int i;
|
||||
|
||||
// eNB
|
||||
// PBCH : copy payload
|
||||
|
||||
@@ -220,7 +220,7 @@ int main(int argc, char **argv)
|
||||
uint8_t N_RB_DL=25,osf=1;
|
||||
frame_t frame_type = FDD;
|
||||
int xforms=0;
|
||||
FD_lte_phy_scope_ue *form_ue;
|
||||
FD_lte_phy_scope_ue *form_ue = NULL;
|
||||
char title[255];
|
||||
uint32_t DLSCH_RB_ALLOC = 0x1fff;
|
||||
int numCCE=0;
|
||||
@@ -2624,6 +2624,8 @@ PMI_FEEDBACK:
|
||||
num_pdcch_symbols,
|
||||
PHY_vars_eNB->dlsch_eNB[k][0],
|
||||
PHY_vars_eNB->dlsch_eNB[k][1]);
|
||||
/* avoid gcc warnings */
|
||||
(void)re_allocated;
|
||||
|
||||
stop_meas(&PHY_vars_eNB->dlsch_modulation_stats);
|
||||
/*
|
||||
|
||||
@@ -583,10 +583,10 @@ int main(int argc, char **argv)
|
||||
mcs,N_RB_DL,mcs,N_RB_DL,errs[0],
|
||||
mcs,N_RB_DL,mcs,N_RB_DL,trials);
|
||||
else
|
||||
fprintf(fd,"SNR_awgn_%d = [SNR_awgn_%d %d]; errs_mch_awgn_%d =[errs_mch_awgn_%f %d]; mch_trials_awgn_%d =[mch_trials_awgn_%d %d];\n",
|
||||
mcs,N_RB_DL,mcs,N_RB_DL,SNR,
|
||||
mcs,N_RB_DL,mcs,N_RB_DL,errs[0],
|
||||
mcs,N_RB_DL,mcs,N_RB_DL,trials);
|
||||
fprintf(fd,"SNR_awgn_%d = [SNR_awgn_%d %f]; errs_mch_awgn_%d =[errs_mch_awgn_%d %d]; mch_trials_awgn_%d =[mch_trials_awgn_%d %d];\n",
|
||||
N_RB_DL,N_RB_DL,SNR,
|
||||
N_RB_DL,N_RB_DL,errs[0],
|
||||
N_RB_DL,N_RB_DL,trials);
|
||||
|
||||
fflush(fd);
|
||||
|
||||
|
||||
@@ -80,9 +80,9 @@ int main(int argc, char **argv)
|
||||
unsigned char pbch_pdu[6];
|
||||
// int sync_pos, sync_pos_slot;
|
||||
// FILE *rx_frame_file;
|
||||
FILE *output_fd;
|
||||
FILE *output_fd = NULL;
|
||||
uint8_t write_output_file=0;
|
||||
int result;
|
||||
//int result;
|
||||
int freq_offset;
|
||||
// int subframe_offset;
|
||||
// char fname[40], vname[40];
|
||||
@@ -91,8 +91,8 @@ int main(int argc, char **argv)
|
||||
uint16_t Nid_cell=0;
|
||||
|
||||
int n_frames=1;
|
||||
channel_desc_t *eNB2UE,*eNB2UE1,*eNB2UE2;
|
||||
uint32_t nsymb,tx_lev,tx_lev1,tx_lev2;
|
||||
channel_desc_t *eNB2UE,*eNB2UE1 = NULL,*eNB2UE2 = NULL;
|
||||
uint32_t nsymb,tx_lev,tx_lev1 = 0,tx_lev2 = 0;
|
||||
uint8_t extended_prefix_flag=0;
|
||||
int8_t interf1=-21,interf2=-21;
|
||||
LTE_DL_FRAME_PARMS *frame_parms;
|
||||
@@ -104,12 +104,12 @@ int main(int argc, char **argv)
|
||||
char input_val_str[50],input_val_str2[50];
|
||||
// double input_val1,input_val2;
|
||||
// uint16_t amask=0;
|
||||
uint8_t frame_mod4,num_pdcch_symbols;
|
||||
uint8_t frame_mod4,num_pdcch_symbols = 0;
|
||||
uint16_t NB_RB=25;
|
||||
|
||||
SCM_t channel_model=AWGN;//Rayleigh1_anticorr;
|
||||
|
||||
DCI_ALLOC_t dci_alloc[8];
|
||||
//DCI_ALLOC_t dci_alloc[8];
|
||||
uint8_t abstraction_flag=0;//,calibration_flag=0;
|
||||
double pbch_sinr;
|
||||
int pbch_tx_ant;
|
||||
@@ -782,7 +782,10 @@ int main(int argc, char **argv)
|
||||
i=0;
|
||||
|
||||
while (!feof(input_fd)) {
|
||||
fscanf(input_fd,"%s %s",input_val_str,input_val_str2);//&input_val1,&input_val2);
|
||||
if (fscanf(input_fd,"%s %s",input_val_str,input_val_str2) != 2) { //&input_val1,&input_val2);
|
||||
printf("%s:%d:%s: error with fscanf, exiting\n", __FILE__, __LINE__, __FUNCTION__);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((i%4)==0) {
|
||||
((short*)txdata[0])[i/2] = (short)((1<<15)*strtod(input_val_str,NULL));
|
||||
|
||||
@@ -67,9 +67,9 @@ DCI_PDU *get_dci(LTE_DL_FRAME_PARMS *lte_frame_parms,uint8_t log2L, uint8_t log2
|
||||
uint32_t UL_alloc_pdu[2];
|
||||
|
||||
int i;
|
||||
int dci_length_bytes,dci_length;
|
||||
int BCCH_pdu_size_bits, BCCH_pdu_size_bytes;
|
||||
int UL_pdu_size_bits, UL_pdu_size_bytes;
|
||||
int dci_length_bytes=0,dci_length=0;
|
||||
int BCCH_pdu_size_bits=0, BCCH_pdu_size_bytes=0;
|
||||
int UL_pdu_size_bits=0, UL_pdu_size_bytes=0;
|
||||
int mcs = 3;
|
||||
|
||||
DCI_pdu.Num_ue_spec_dci = 0;
|
||||
@@ -789,6 +789,11 @@ int main(int argc, char **argv)
|
||||
while (!feof(input_fd)) {
|
||||
ret=fscanf(input_fd,"%s %s",input_val_str,input_val_str2);//&input_val1,&input_val2);
|
||||
|
||||
if (ret != 2) {
|
||||
printf("%s:%d:%s: fscanf error, exiting\n", __FILE__, __LINE__, __FUNCTION__);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((i%4)==0) {
|
||||
((short*)txdata[0])[i/2] = (short)((1<<15)*strtod(input_val_str,NULL));
|
||||
((short*)txdata[0])[(i/2)+1] = (short)((1<<15)*strtod(input_val_str2,NULL));
|
||||
|
||||
@@ -58,6 +58,8 @@ PHY_VARS_UE *PHY_vars_UE;
|
||||
|
||||
extern uint16_t prach_root_sequence_map0_3[838];
|
||||
|
||||
void dump_prach_config(LTE_DL_FRAME_PARMS *frame_parms,uint8_t subframe);
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
||||
@@ -74,7 +76,7 @@ int main(int argc, char **argv)
|
||||
int **txdata;
|
||||
double **s_re,**s_im,**r_re,**r_im;
|
||||
double iqim=0.0;
|
||||
int trial, ntrials=1;
|
||||
int trial; //, ntrials=1;
|
||||
uint8_t transmission_mode = 1,n_tx=1,n_rx=1;
|
||||
uint16_t Nid_cell=0;
|
||||
|
||||
@@ -82,7 +84,7 @@ int main(int argc, char **argv)
|
||||
uint8_t hs_flag=0;
|
||||
int n_frames=1;
|
||||
channel_desc_t *UE2eNB;
|
||||
uint32_t nsymb,tx_lev,tx_lev_dB;
|
||||
uint32_t nsymb,tx_lev; //,tx_lev_dB;
|
||||
uint8_t extended_prefix_flag=0;
|
||||
// int8_t interf1=-19,interf2=-19;
|
||||
LTE_DL_FRAME_PARMS *frame_parms;
|
||||
@@ -101,8 +103,8 @@ int main(int argc, char **argv)
|
||||
uint16_t preamble_energy_list[64],preamble_tx=99,preamble_delay_list[64];
|
||||
uint16_t preamble_max,preamble_energy_max;
|
||||
PRACH_RESOURCES_t prach_resources;
|
||||
uint8_t prach_fmt;
|
||||
int N_ZC;
|
||||
//uint8_t prach_fmt;
|
||||
//int N_ZC;
|
||||
int delay = 0;
|
||||
double delay_avg=0;
|
||||
double ue_speed = 0;
|
||||
@@ -126,7 +128,8 @@ int main(int argc, char **argv)
|
||||
case 'a':
|
||||
printf("Running AWGN simulation\n");
|
||||
awgn_flag = 1;
|
||||
ntrials=1;
|
||||
/* ntrials not used later, no need to set */
|
||||
//ntrials=1;
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
@@ -404,9 +407,11 @@ int main(int argc, char **argv)
|
||||
PHY_vars_eNB->lte_frame_parms.prach_config_common.prach_ConfigInfo.highSpeedFlag=hs_flag;
|
||||
PHY_vars_eNB->lte_frame_parms.prach_config_common.prach_ConfigInfo.prach_FreqOffset=0;
|
||||
|
||||
prach_fmt = get_prach_fmt(PHY_vars_eNB->lte_frame_parms.prach_config_common.prach_ConfigInfo.prach_ConfigIndex,
|
||||
PHY_vars_eNB->lte_frame_parms.frame_type);
|
||||
N_ZC = (prach_fmt <4)?839:139;
|
||||
/* N_ZC not used later, so prach_fmt is also useless, don't set */
|
||||
//prach_fmt = get_prach_fmt(PHY_vars_eNB->lte_frame_parms.prach_config_common.prach_ConfigInfo.prach_ConfigIndex,
|
||||
// PHY_vars_eNB->lte_frame_parms.frame_type);
|
||||
/* N_ZC not used later, no need to set */
|
||||
//N_ZC = (prach_fmt <4)?839:139;
|
||||
|
||||
compute_prach_seq(&PHY_vars_eNB->lte_frame_parms.prach_config_common,PHY_vars_eNB->lte_frame_parms.frame_type,PHY_vars_eNB->X_u);
|
||||
|
||||
@@ -430,7 +435,8 @@ int main(int argc, char **argv)
|
||||
subframe,
|
||||
0); //Nf
|
||||
|
||||
tx_lev_dB = (unsigned int) dB_fixed(tx_lev);
|
||||
/* tx_lev_dB not used later, no need to set */
|
||||
//tx_lev_dB = (unsigned int) dB_fixed(tx_lev);
|
||||
|
||||
write_output("txsig0_new.m","txs0", &txdata[0][subframe*frame_parms->samples_per_tti],frame_parms->samples_per_tti,1,1);
|
||||
//write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1);
|
||||
|
||||
@@ -41,7 +41,13 @@
|
||||
#if !defined (msg)
|
||||
# define msg(aRGS...) LOG_D(PHY, ##aRGS)
|
||||
#endif
|
||||
#define malloc16(x) memalign(16,x) //malloc(x)
|
||||
#ifndef malloc16
|
||||
# ifdef __AVX2__
|
||||
# define malloc16(x) memalign(32,x)
|
||||
# else
|
||||
# define malloc16(x) memalign(16,x)
|
||||
# endif
|
||||
#endif
|
||||
#define free16(y,x) free(y)
|
||||
#define bigmalloc malloc
|
||||
#define bigmalloc16 malloc16
|
||||
|
||||
@@ -289,6 +289,9 @@ void *eNB_app_task(void *args_p)
|
||||
instance_t instance;
|
||||
int result;
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)instance;
|
||||
|
||||
itti_mark_task_ready (TASK_ENB_APP);
|
||||
|
||||
# if defined(ENABLE_USE_MME)
|
||||
@@ -432,5 +435,8 @@ void *eNB_app_task(void *args_p)
|
||||
|
||||
#endif
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)enb_properties_p;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -577,9 +577,9 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
||||
const char* pusch_alpha = NULL;
|
||||
libconfig_int pucch_p0_Nominal = 0;
|
||||
libconfig_int msg3_delta_Preamble = 0;
|
||||
libconfig_int ul_CyclicPrefixLength = 0;
|
||||
//libconfig_int ul_CyclicPrefixLength = 0;
|
||||
const char* pucch_deltaF_Format1 = NULL;
|
||||
const char* pucch_deltaF_Format1a = NULL;
|
||||
//const char* pucch_deltaF_Format1a = NULL;
|
||||
const char* pucch_deltaF_Format1b = NULL;
|
||||
const char* pucch_deltaF_Format2 = NULL;
|
||||
const char* pucch_deltaF_Format2a = NULL;
|
||||
@@ -668,6 +668,10 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
||||
char* osa_log_level = NULL;
|
||||
char* osa_log_verbosity = NULL;
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)astring;
|
||||
(void)my_int;
|
||||
|
||||
memset((char*) (enb_properties.properties), 0 , MAX_ENB * sizeof(Enb_properties_t *));
|
||||
memset((char*)active_enb, 0 , MAX_ENB * sizeof(char*));
|
||||
|
||||
|
||||
@@ -275,7 +275,7 @@ rrc_mac_config_req(
|
||||
if (eNB_flagP==1) {
|
||||
mac_xface->phy_config_dedicated_scell_eNB(Mod_id,UE_RNTI(Mod_id,UE_id),sCellToAddMod_r10,1);
|
||||
} else {
|
||||
#warning "phy_config_dedicated_scell_ue is empty"
|
||||
//#warning "phy_config_dedicated_scell_ue is empty"
|
||||
mac_xface->phy_config_dedicated_scell_ue(Mod_id,eNB_index,sCellToAddMod_r10,1);
|
||||
UE_mac_inst[Mod_id].physicalConfigDedicatedSCell_r10 = sCellToAddMod_r10->radioResourceConfigDedicatedSCell_r10->physicalConfigDedicatedSCell_r10; // using SCell index 0
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
|
||||
int mbsfn_status[MAX_NUM_CCs];
|
||||
protocol_ctxt_t ctxt;
|
||||
#ifdef EXMIMO
|
||||
int ret;
|
||||
//int ret;
|
||||
#endif
|
||||
#if defined(ENABLE_ITTI)
|
||||
MessageDef *msg_p;
|
||||
|
||||
@@ -85,9 +85,9 @@ schedule_SI(
|
||||
int CC_id;
|
||||
eNB_MAC_INST *eNB = &eNB_mac_inst[module_idP];
|
||||
uint8_t *vrb_map;
|
||||
int first_rb;
|
||||
int first_rb = -1;
|
||||
int rballoc[MAX_NUM_CCs];
|
||||
int sizeof1A_bytes,sizeof1A_bits;
|
||||
int sizeof1A_bytes,sizeof1A_bits = -1;
|
||||
DCI_PDU *DCI_pdu;
|
||||
|
||||
start_meas(&eNB->schedule_si);
|
||||
|
||||
@@ -1125,7 +1125,7 @@ schedule_ue_spec(
|
||||
if (frame_parms[CC_id]->frame_type == TDD) {
|
||||
UE_list->UE_template[CC_id][UE_id].DAI++;
|
||||
// printf("DAI update: subframeP %d: UE %d, DAI %d\n",subframeP,UE_id,UE_list->UE_template[CC_id][UE_id].DAI);
|
||||
#warning only for 5MHz channel
|
||||
//#warning only for 5MHz channel
|
||||
update_ul_dci(module_idP,CC_id,rnti,UE_list->UE_template[CC_id][UE_id].DAI);
|
||||
}
|
||||
|
||||
@@ -1488,23 +1488,23 @@ fill_DLSCH_dci(
|
||||
|
||||
// loop over all allocated UEs and compute frequency allocations for PDSCH
|
||||
int UE_id = -1;
|
||||
uint8_t first_rb,nb_rb=3;
|
||||
uint8_t /* first_rb, */ nb_rb=3;
|
||||
rnti_t rnti;
|
||||
unsigned char *vrb_map;
|
||||
//unsigned char *vrb_map;
|
||||
uint8_t rballoc_sub[25];
|
||||
//uint8_t number_of_subbands=13;
|
||||
|
||||
unsigned char round;
|
||||
//unsigned char round;
|
||||
unsigned char harq_pid;
|
||||
void *DLSCH_dci=NULL;
|
||||
DCI_PDU *DCI_pdu;
|
||||
int i;
|
||||
void *BCCH_alloc_pdu;
|
||||
//void *BCCH_alloc_pdu;
|
||||
int size_bits,size_bytes;
|
||||
int CC_id;
|
||||
eNB_MAC_INST *eNB =&eNB_mac_inst[module_idP];
|
||||
UE_list_t *UE_list = &eNB->UE_list;
|
||||
RA_TEMPLATE *RA_template;
|
||||
//RA_TEMPLATE *RA_template;
|
||||
|
||||
start_meas(&eNB->fill_DLSCH_dci);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_FILL_DLSCH_DCI,VCD_FUNCTION_IN);
|
||||
|
||||
@@ -666,7 +666,7 @@ MCH_PDU *get_mch_sdu(module_id_t module_idP, int CC_id, frame_t frameP, sub_fram
|
||||
{
|
||||
// eNB_mac_inst[module_idP].MCH_pdu.mcs=0;
|
||||
//LOG_D(MAC," MCH_pdu.mcs is %d\n", eNB_mac_inst[module_idP].MCH_pdu.mcs);
|
||||
#warning "MCH pdu should take the CC_id index"
|
||||
//#warning "MCH pdu should take the CC_id index"
|
||||
return(&eNB_mac_inst[module_idP].common_channels[CC_id].MCH_pdu);
|
||||
}
|
||||
|
||||
|
||||
@@ -1082,7 +1082,7 @@ boolean_t CCE_allocation_infeasible(int module_idP,
|
||||
|
||||
|
||||
DCI_PDU *DCI_pdu = &eNB_mac_inst[module_idP].common_channels[CC_idP].DCI_pdu;
|
||||
DCI_ALLOC_t *dci_alloc;
|
||||
//DCI_ALLOC_t *dci_alloc;
|
||||
int ret;
|
||||
boolean_t res=FALSE;
|
||||
|
||||
|
||||
@@ -229,6 +229,12 @@ void rx_sdu(
|
||||
|
||||
switch (rx_lcids[i]) {
|
||||
case CCCH :
|
||||
if (rx_lengths[i] > CCCH_PAYLOAD_SIZE_MAX) {
|
||||
LOG_E(MAC, "[eNB %d/%d] frame %d received CCCH of size %d (too big, maximum allowed is %d), dropping packet\n",
|
||||
enb_mod_idP, CC_idP, frameP, rx_lengths[i], CCCH_PAYLOAD_SIZE_MAX);
|
||||
break;
|
||||
}
|
||||
|
||||
LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, Received CCCH: %x.%x.%x.%x.%x.%x, Terminating RA procedure for UE rnti %x\n",
|
||||
enb_mod_idP,CC_idP,frameP,
|
||||
payload_ptr[0],payload_ptr[1],payload_ptr[2],payload_ptr[3],payload_ptr[4], payload_ptr[5], rntiP);
|
||||
@@ -302,26 +308,23 @@ void rx_sdu(
|
||||
#endif
|
||||
|
||||
if (UE_id != -1) {
|
||||
// This check is just to make sure we didn't get a bogus SDU length, to be removed ...
|
||||
if (rx_lengths[i]<CCCH_PAYLOAD_SIZE_MAX) {
|
||||
LOG_D(MAC,"[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DCCH, received %d bytes form UE %d on LCID %d \n",
|
||||
enb_mod_idP,CC_idP,frameP, rx_lengths[i], UE_id, rx_lcids[i]);
|
||||
LOG_D(MAC,"[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DCCH, received %d bytes form UE %d on LCID %d \n",
|
||||
enb_mod_idP,CC_idP,frameP, rx_lengths[i], UE_id, rx_lcids[i]);
|
||||
|
||||
mac_rlc_data_ind(
|
||||
enb_mod_idP,
|
||||
rntiP,
|
||||
enb_mod_idP,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
rx_lcids[i],
|
||||
(char *)payload_ptr,
|
||||
rx_lengths[i],
|
||||
1,
|
||||
NULL);//(unsigned int*)crc_status);
|
||||
UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]]+=1;
|
||||
UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]]+=rx_lengths[i];
|
||||
}
|
||||
mac_rlc_data_ind(
|
||||
enb_mod_idP,
|
||||
rntiP,
|
||||
enb_mod_idP,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
rx_lcids[i],
|
||||
(char *)payload_ptr,
|
||||
rx_lengths[i],
|
||||
1,
|
||||
NULL);//(unsigned int*)crc_status);
|
||||
UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]]+=1;
|
||||
UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]]+=rx_lengths[i];
|
||||
} /* UE_id != -1 */
|
||||
|
||||
// }
|
||||
|
||||
@@ -748,10 +748,10 @@ void dlsch_scheduler_pre_processor_reset (int module_idP,
|
||||
UE_list_t *UE_list=&eNB_mac_inst[module_idP].UE_list;
|
||||
UE_sched_ctrl *ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id];
|
||||
rnti_t rnti = UE_RNTI(module_idP,UE_id);
|
||||
uint8_t *vrb_map = &eNB_mac_inst[module_idP].common_channels[CC_id].vrb_map;
|
||||
uint8_t *vrb_map = eNB_mac_inst[module_idP].common_channels[CC_id].vrb_map;
|
||||
int RBGsize = PHY_vars_eNB_g[module_idP][CC_id]->lte_frame_parms.N_RB_DL/N_RBG;
|
||||
#ifdef SF05_LIMIT
|
||||
int subframe05_limit=0;
|
||||
//int subframe05_limit=0;
|
||||
int sf05_upper=-1,sf05_lower=-1;
|
||||
#endif
|
||||
LTE_eNB_UE_stats *eNB_UE_stats = mac_xface->get_eNB_UE_stats(module_idP,CC_id,rnti);
|
||||
@@ -1085,7 +1085,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
|
||||
void store_ulsch_buffer(module_id_t module_idP, int frameP, sub_frame_t subframeP)
|
||||
{
|
||||
|
||||
int UE_id,pCC_id,lcgid;
|
||||
int UE_id, /* pCC_id, */ lcgid;
|
||||
UE_list_t *UE_list = &eNB_mac_inst[module_idP].UE_list;
|
||||
UE_TEMPLATE *UE_template;
|
||||
|
||||
@@ -1231,7 +1231,7 @@ void sort_ue_ul (module_id_t module_idP,int frameP, sub_frame_t subframeP)
|
||||
int UE_id1,UE_id2;
|
||||
int pCCid1,pCCid2;
|
||||
int round1,round2;
|
||||
int i=0,ii=0,j=0;
|
||||
int i=0,ii=0;
|
||||
rnti_t rnti1,rnti2;
|
||||
|
||||
UE_list_t *UE_list = &eNB_mac_inst[module_idP].UE_list;
|
||||
|
||||
@@ -779,6 +779,7 @@ rrc_get_estimated_ue_distance(
|
||||
const int CC_idP,
|
||||
const uint8_t loc_typeP);
|
||||
|
||||
void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_eNB);
|
||||
|
||||
#endif
|
||||
/** @}*/
|
||||
|
||||
@@ -152,6 +152,9 @@ void get_prach_resources(module_id_t module_idP,
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO: gcc warns if this variable is not always set, let's put -1 for no more warning */
|
||||
messageSizeGroupA = -1;
|
||||
|
||||
if (!rach_ConfigCommon->preambleInfo.preamblesGroupAConfig) {
|
||||
noGroupB = 1;
|
||||
} else {
|
||||
@@ -171,6 +174,8 @@ void get_prach_resources(module_id_t module_idP,
|
||||
break;
|
||||
}
|
||||
|
||||
/* TODO: what value to use as default? */
|
||||
messagePowerOffsetGroupB = -9999;
|
||||
switch (rach_ConfigCommon->preambleInfo.preamblesGroupAConfig->messagePowerOffsetGroupB) {
|
||||
case 0:
|
||||
messagePowerOffsetGroupB = -9999;
|
||||
@@ -495,7 +500,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
|
||||
UE_mac_inst[module_idP].RA_PREAMBLE_TRANSMISSION_COUNTER++;
|
||||
UE_mac_inst[module_idP].RA_prach_resources.ra_PREAMBLE_RECEIVED_TARGET_POWER +=
|
||||
(rach_ConfigCommon->powerRampingParameters.powerRampingStep<<1); // 2dB increments in ASN.1 definition
|
||||
int preambleTransMax;
|
||||
int preambleTransMax = -1;
|
||||
switch (rach_ConfigCommon->ra_SupervisionInfo.preambleTransMax) {
|
||||
case RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3:
|
||||
preambleTransMax = 3;
|
||||
|
||||
@@ -692,7 +692,7 @@ pdcp_data_ind(
|
||||
#if defined(USER_MODE) && defined(OAI_EMU)
|
||||
|
||||
if (oai_emulation.info.otg_enabled == 1) {
|
||||
unsigned int dst_instance;
|
||||
//unsigned int dst_instance;
|
||||
int ctime;
|
||||
|
||||
if ((pdcp_p->rlc_mode == RLC_MODE_AM)&&(MBMS_flagP==0) ) {
|
||||
@@ -1032,6 +1032,8 @@ pdcp_remove_UE(
|
||||
|
||||
}
|
||||
|
||||
(void)h_rc; /* remove gcc warning "set but not used" */
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1486,7 +1488,7 @@ pdcp_config_req_asn1 (
|
||||
|
||||
case CONFIG_ACTION_REMOVE:
|
||||
DevAssert(pdcp_pP != NULL);
|
||||
#warning "TODO pdcp_module_id_to_rnti"
|
||||
//#warning "TODO pdcp_module_id_to_rnti"
|
||||
//pdcp_module_id_to_rnti[ctxt_pP.module_id ][dst_id] = NOT_A_RNTI;
|
||||
LOG_D(PDCP, PROTOCOL_PDCP_CTXT_FMT" CONFIG_ACTION_REMOVE LCID %d RBID %d configured\n",
|
||||
PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP),
|
||||
|
||||
@@ -313,6 +313,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
|
||||
hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE;
|
||||
hashtable_rc_t h_rc;
|
||||
struct pdcp_netlink_element_s* data_p = NULL;
|
||||
/* avoid gcc warnings */
|
||||
(void)data_p;
|
||||
module_id_t ue_id = 0;
|
||||
pdcp_t* pdcp_p = NULL;
|
||||
# if defined(PDCP_USE_NETLINK_QUEUES)
|
||||
@@ -492,7 +494,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
|
||||
pdcp_read_header_g.inst + oai_emulation.info.first_enb_local;*/
|
||||
#else // OAI_EMU
|
||||
pdcp_read_header_g.inst = 0;
|
||||
#warning "TO DO CORRCT VALUES FOR ue mod id, enb mod id"
|
||||
//#warning "TO DO CORRCT VALUES FOR ue mod id, enb mod id"
|
||||
ctxt.frame = ctxt_cpy.frame;
|
||||
ctxt.enb_flag = ctxt_cpy.enb_flag;
|
||||
|
||||
@@ -565,7 +567,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
|
||||
}
|
||||
} else { // rb_id =0, thus interpreated as broadcast and transported as multiple unicast
|
||||
// is a broadcast packet, we have to send this packet on all default RABS of all connected UEs
|
||||
#warning CODE TO BE REVIEWED, ONLY WORK FOR SIMPLE TOPOLOGY CASES
|
||||
//#warning CODE TO BE REVIEWED, ONLY WORK FOR SIMPLE TOPOLOGY CASES
|
||||
for (ue_id = 0; ue_id < NB_UE_INST; ue_id++) {
|
||||
if (oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt_cpy.module_id][ue_id] != NOT_A_RNTI) {
|
||||
ctxt.rnti = oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt_cpy.module_id][ue_id];
|
||||
|
||||
@@ -599,6 +599,7 @@ rlc_am_mac_status_indication (
|
||||
rlc_sn_t sn_end = (rlc->vt_a - 1) & RLC_AM_SN_MASK;
|
||||
int found_pdu = 0;
|
||||
rlc_sn_t found_pdu_sn = 0; // avoid warning
|
||||
(void)found_pdu_sn; /* avoid gcc warning "set but not used" */
|
||||
|
||||
|
||||
while (sn != sn_end) {
|
||||
@@ -681,6 +682,12 @@ rlc_am_mac_data_request (
|
||||
MessageDef *msg_p;
|
||||
# endif
|
||||
int octet_index, index;
|
||||
/* for no gcc warnings */
|
||||
(void)num_nack;
|
||||
(void)message_string;
|
||||
(void)message_string_size;
|
||||
(void)octet_index;
|
||||
(void)index;
|
||||
#endif
|
||||
|
||||
list_init (&data_req.data, NULL);
|
||||
@@ -915,8 +922,16 @@ rlc_am_mac_data_indication (
|
||||
MessageDef *msg_p;
|
||||
# endif
|
||||
int octet_index, index;
|
||||
/* for no gcc warnings */
|
||||
(void)num_nack;
|
||||
(void)message_string;
|
||||
(void)message_string_size;
|
||||
(void)octet_index;
|
||||
(void)index;
|
||||
#endif
|
||||
|
||||
(void)l_rlc_p; /* avoid gcc warning "unused variable" */
|
||||
|
||||
#if TRACE_RLC_AM_PDU || MESSAGE_CHART_GENERATOR
|
||||
|
||||
if (data_indP.data.nb_elements > 0) {
|
||||
|
||||
@@ -57,7 +57,7 @@ rlc_am_init(
|
||||
|
||||
pthread_mutex_init(&rlc_pP->lock_input_sdus, NULL);
|
||||
rlc_pP->input_sdus = calloc(1, RLC_AM_SDU_CONTROL_BUFFER_SIZE*sizeof(rlc_am_tx_sdu_management_t));
|
||||
#warning "cast the rlc retrans buffer to uint32"
|
||||
//#warning "cast the rlc retrans buffer to uint32"
|
||||
// rlc_pP->pdu_retrans_buffer = calloc(1, (uint16_t)((unsigned int)RLC_AM_PDU_RETRANSMISSION_BUFFER_SIZE*(unsigned int)sizeof(rlc_am_tx_data_pdu_management_t)));
|
||||
rlc_pP->pdu_retrans_buffer = calloc(1, (uint32_t)((unsigned int)RLC_AM_PDU_RETRANSMISSION_BUFFER_SIZE*(unsigned int)sizeof(
|
||||
rlc_am_tx_data_pdu_management_t)));
|
||||
@@ -114,7 +114,7 @@ rlc_am_reestablish(
|
||||
LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[AM REESTABLISH] RE-INIT STATE VARIABLES, BUFFERS, LISTS\n",
|
||||
PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP));
|
||||
|
||||
#warning TODO when possible reassemble RLC SDUs from any byte segments of AMD PDUs with SN inf VR(MR)
|
||||
//#warning TODO when possible reassemble RLC SDUs from any byte segments of AMD PDUs with SN inf VR(MR)
|
||||
list2_free(&rlc_pP->receiver_buffer);
|
||||
|
||||
list_free(&rlc_pP->pdus_to_mac_layer);
|
||||
|
||||
@@ -516,7 +516,7 @@ void rlc_am_segment_10 (
|
||||
|
||||
pdu_tb_req_p->data_ptr = (unsigned char*)pdu_p;
|
||||
pdu_tb_req_p->tb_size = data_pdu_size - pdu_remaining_size;
|
||||
#warning "why 3000: changed to RLC_SDU_MAX_SIZE "
|
||||
//#warning "why 3000: changed to RLC_SDU_MAX_SIZE "
|
||||
assert(pdu_tb_req_p->tb_size < RLC_SDU_MAX_SIZE );
|
||||
rlc_am_pdu_polling(ctxt_pP, rlc_pP, pdu_p, pdu_mngt_p->payload_size);
|
||||
|
||||
|
||||
@@ -745,7 +745,7 @@ rlc_um_data_req (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP, mem_block_t
|
||||
/*
|
||||
* Print every single octet in hexadecimal form
|
||||
*/
|
||||
message_string_size += sprintf(&message_string[message_string_size], " %02x", (uint8_t*)(&sdu_pP->data[data_offset])[octet_index]);
|
||||
message_string_size += sprintf(&message_string[message_string_size], " %02x", ((uint8_t*)(&sdu_pP->data[data_offset]))[octet_index]);
|
||||
/*
|
||||
* Align newline and pipes according to the octets in groups of 2
|
||||
*/
|
||||
|
||||
@@ -602,6 +602,9 @@ rlc_module_init (void)
|
||||
int k;
|
||||
module_id_t module_id1;
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)k;
|
||||
|
||||
LOG_D(RLC, "MODULE INIT\n");
|
||||
rlc_rrc_data_ind = NULL;
|
||||
rlc_rrc_data_conf = NULL;
|
||||
|
||||
@@ -87,6 +87,11 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP
|
||||
|
||||
#endif
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)rlc_union_p;
|
||||
(void)key;
|
||||
(void)h_rc;
|
||||
|
||||
LOG_D(RLC, PROTOCOL_CTXT_FMT" CONFIG REQ ASN1 \n",
|
||||
PROTOCOL_CTXT_ARGS(ctxt_pP));
|
||||
|
||||
@@ -196,7 +201,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP
|
||||
break;
|
||||
|
||||
case SRB_ToAddMod__rlc_Config_PR_defaultValue:
|
||||
#warning TO DO SRB_ToAddMod__rlc_Config_PR_defaultValue
|
||||
//#warning TO DO SRB_ToAddMod__rlc_Config_PR_defaultValue
|
||||
if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM) != NULL) {
|
||||
config_req_rlc_um_asn1(
|
||||
ctxt_pP,
|
||||
@@ -463,6 +468,9 @@ rlc_op_status_t rrc_rlc_remove_rlc (
|
||||
|
||||
#endif
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)lcid;
|
||||
|
||||
#ifdef Rel10
|
||||
|
||||
if (MBMS_flagP == TRUE) {
|
||||
@@ -634,7 +642,7 @@ rlc_op_status_t rrc_rlc_config_req (
|
||||
const rlc_info_t rlc_infoP)
|
||||
{
|
||||
//-----------------------------------------------------------------------------
|
||||
rlc_op_status_t status;
|
||||
//rlc_op_status_t status;
|
||||
|
||||
LOG_D(RLC, PROTOCOL_CTXT_FMT" CONFIG_REQ for RAB %u\n",
|
||||
PROTOCOL_CTXT_ARGS(ctxt_pP),
|
||||
|
||||
@@ -74,7 +74,7 @@ int dump_eNB_l2_stats(char *buffer, int length)
|
||||
int eNB_id,UE_id,number_of_cards;
|
||||
int len= length;
|
||||
int CC_id=0;
|
||||
int i,j;
|
||||
int i;
|
||||
protocol_ctxt_t ctxt;
|
||||
rlc_op_status_t rlc_status;
|
||||
unsigned int stat_rlc_mode;
|
||||
@@ -150,7 +150,7 @@ int dump_eNB_l2_stats(char *buffer, int length)
|
||||
eNB->eNB_stats[CC_id].dlsch_pdus_tx,
|
||||
eNB->eNB_stats[CC_id].total_dlsch_pdus_tx);
|
||||
|
||||
len += sprintf(&buffer[len],"ULSCH bitrate (TTI %u, avg %u) kbps, Received bytes (TTI %u, total %u), Received PDU (TTI %u, total %lu) \n",
|
||||
len += sprintf(&buffer[len],"ULSCH bitrate (TTI %u, avg %u) kbps, Received bytes (TTI %u, total %u), Received PDU (TTI %lu, total %u) \n",
|
||||
eNB->eNB_stats[CC_id].ulsch_bitrate,
|
||||
eNB->eNB_stats[CC_id].total_ulsch_bitrate,
|
||||
eNB->eNB_stats[CC_id].ulsch_bytes_rx,
|
||||
@@ -201,7 +201,7 @@ int dump_eNB_l2_stats(char *buffer, int length)
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].avg_overhead_bytes
|
||||
);
|
||||
|
||||
len += sprintf(&buffer[len],"[MAC] UE %d (ULSCH), Status %d, RNTI %x : rx power (normalized %d, target %d), MCS (pre %d, post %d), RB (rx %d, retx %d, total %d), Current TBS %d \n",
|
||||
len += sprintf(&buffer[len],"[MAC] UE %d (ULSCH), Status %s, RNTI %x : rx power (normalized %d, target %d), MCS (pre %d, post %d), RB (rx %d, retx %d, total %d), Current TBS %d \n",
|
||||
UE_id,
|
||||
map_int_to_str(rrc_status_names, UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status),
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].crnti,
|
||||
|
||||
@@ -241,19 +241,24 @@ typedef struct {
|
||||
uint16_t (*get_nCCE_max)(module_id_t Mod_id,uint8_t CC_id,int num_pdcch_symbols,int subframe);
|
||||
|
||||
|
||||
int (*get_nCCE_offset)(unsigned char L, int nCCE, int common_dci, unsigned short rnti, unsigned char subframe);
|
||||
int (*get_nCCE_offset)(int *CCE_table,
|
||||
const unsigned char L,
|
||||
const int nCCE,
|
||||
const int common_dci,
|
||||
const unsigned short rnti,
|
||||
const unsigned char subframe);
|
||||
|
||||
/// Function to retrieve number of PRB in an rb_alloc
|
||||
uint32_t (*get_nb_rb)(uint8_t ra_header, uint32_t rb_alloc, int n_rb_dl);
|
||||
|
||||
/// Function to convert VRB to PRB for distributed allocation
|
||||
int (*get_prb)(int N_RB_DL,int odd_slot,int vrb,int Ngap);
|
||||
uint32_t (*get_prb)(int N_RB_DL,int odd_slot,int vrb,int Ngap);
|
||||
|
||||
/// Function to retrieve transmission mode for UE
|
||||
uint8_t (*get_transmission_mode)(module_id_t Mod_id,uint8_t CC_id,rnti_t rnti);
|
||||
|
||||
/// Function to retrieve rb_alloc bitmap from dci rballoc field and VRB type
|
||||
uint32_t (*get_rballoc)(uint8_t vrb_type, uint16_t rb_alloc_dci);
|
||||
uint32_t (*get_rballoc)(vrb_t vrb_type, uint16_t rb_alloc_dci);
|
||||
|
||||
/// Function for UE MAC to retrieve current PHY connectivity mode (PRACH,RA_RESPONSE,PUSCH)
|
||||
UE_MODE_t (*get_ue_mode)(module_id_t Mod_id, uint8_t CC_id,uint8_t eNB_index);
|
||||
|
||||
@@ -355,6 +355,10 @@ mac_rrc_lite_data_ind(
|
||||
SRB_INFO *Srb_info;
|
||||
protocol_ctxt_t ctxt;
|
||||
sdu_size_t sdu_size = 0;
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)sdu_size;
|
||||
|
||||
/*
|
||||
int si_window;
|
||||
*/
|
||||
@@ -389,7 +393,7 @@ mac_rrc_lite_data_ind(
|
||||
itti_send_msg_to_task (TASK_RRC_UE, ctxt.instance, message_p);
|
||||
}
|
||||
#else
|
||||
decode_BCCH_DLSCH_Message(&ctxt,eNB_indexP,sduP,sdu_lenP, 0, 0);
|
||||
decode_BCCH_DLSCH_Message(&ctxt,eNB_indexP,(uint8_t*)sduP,sdu_lenP, 0, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -634,7 +638,7 @@ rrc_lite_data_ind(
|
||||
buffer_pP,
|
||||
sdu_sizeP);
|
||||
} else {
|
||||
#warning "LG put 0 to arg4 that is eNB index"
|
||||
//#warning "LG put 0 to arg4 that is eNB index"
|
||||
rrc_ue_decode_dcch(
|
||||
ctxt_pP,
|
||||
DCCH_index,
|
||||
|
||||
@@ -141,7 +141,9 @@ static uint8_t check_trigger_meas_event(
|
||||
Q_OffsetRange_t ofn, Q_OffsetRange_t ocn, Hysteresis_t hys,
|
||||
Q_OffsetRange_t ofs, Q_OffsetRange_t ocs, long a3_offset, TimeToTrigger_t ttt);
|
||||
|
||||
#ifdef Rel10
|
||||
static void decode_MBSFNAreaConfiguration(module_id_t module_idP, uint8_t eNB_index, frame_t frameP,uint8_t mbsfn_sync_area);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -151,10 +153,13 @@ static void decode_MBSFNAreaConfiguration(module_id_t module_idP, uint8_t eNB_in
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------*/
|
||||
/* to avoid gcc warnings when compiling with certain options */
|
||||
#if defined(ENABLE_USE_MME) || ENABLE_RAL
|
||||
static Rrc_State_t rrc_get_state (module_id_t ue_mod_idP)
|
||||
{
|
||||
return UE_rrc_inst[ue_mod_idP].RrcState;
|
||||
}
|
||||
#endif
|
||||
|
||||
static Rrc_Sub_State_t rrc_get_sub_state (module_id_t ue_mod_idP)
|
||||
{
|
||||
@@ -261,6 +266,7 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
|
||||
|
||||
#ifdef Rel10
|
||||
//-----------------------------------------------------------------------------
|
||||
#if 0
|
||||
static void init_MCCH_UE(module_id_t ue_mod_idP, uint8_t eNB_index)
|
||||
{
|
||||
int i;
|
||||
@@ -274,6 +280,7 @@ static void init_MCCH_UE(module_id_t ue_mod_idP, uint8_t eNB_index)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
static void openair_rrc_lite_ue_init_security( const protocol_ctxt_t* const ctxt_pP )
|
||||
@@ -697,6 +704,10 @@ rrc_ue_establish_drb(
|
||||
// add descriptor from RRC PDU
|
||||
#ifdef PDCP_USE_NETLINK
|
||||
int oip_ifup=0,ip_addr_offset3=0,ip_addr_offset4=0;
|
||||
/* avoid gcc warnings */
|
||||
(void)oip_ifup;
|
||||
(void)ip_addr_offset3;
|
||||
(void)ip_addr_offset4;
|
||||
#endif
|
||||
|
||||
LOG_I(RRC,"[UE %d] Frame %d: processing RRCConnectionReconfiguration: reconfiguring DRB %ld/LCID %d\n",
|
||||
@@ -1296,7 +1307,7 @@ rrc_ue_process_radioResourceConfigDedicated(
|
||||
UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->cellAccessRelatedInfo.cellIdentity.buf[1],
|
||||
UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->cellAccessRelatedInfo.cellIdentity.buf[2],
|
||||
UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->cellAccessRelatedInfo.cellIdentity.buf[3]);
|
||||
# endif OAI_EMU
|
||||
# endif /* OAI_EMU */
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -2266,6 +2277,9 @@ static const char* SIB2preambleTransMax( long value )
|
||||
case 10:
|
||||
return "n200";
|
||||
}
|
||||
|
||||
/* unreachable but gcc warns... */
|
||||
return "ERR";
|
||||
}
|
||||
static const char* SIB2ra_ResponseWindowSize( long value )
|
||||
{
|
||||
@@ -3061,9 +3075,10 @@ uint64_t arfcn_to_freq(long arfcn) {
|
||||
return((uint64_t)3400000000 + ((arfcn-41590)*100000));
|
||||
else if (arfcn <45590) // Band 43
|
||||
return((uint64_t)3600000000 + ((arfcn-43950)*100000));
|
||||
else
|
||||
else {
|
||||
LOG_E(RRC,"Unknown EARFCN %d\n",arfcn);
|
||||
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
static void dump_sib5( SystemInformationBlockType5_t *sib5 )
|
||||
{
|
||||
|
||||
@@ -253,6 +253,9 @@ openair_rrc_top_init(
|
||||
OAI_UECapability_t *UECap = NULL;
|
||||
int CC_id;
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)CC_id;
|
||||
|
||||
LOG_D(RRC, "[OPENAIR][INIT] Init function start: NB_UE_INST=%d, NB_eNB_INST=%d\n", NB_UE_INST, NB_eNB_INST);
|
||||
|
||||
if (NB_UE_INST > 0) {
|
||||
@@ -411,7 +414,7 @@ rrc_rx_tx(
|
||||
)
|
||||
//-----------------------------------------------------------------------------
|
||||
{
|
||||
uint8_t UE_id;
|
||||
//uint8_t UE_id;
|
||||
int32_t current_timestamp_ms, ref_timestamp_ms;
|
||||
struct timeval ts;
|
||||
#ifdef LOCALIZATION
|
||||
@@ -547,6 +550,9 @@ rrc_rx_tx(
|
||||
}
|
||||
|
||||
#endif
|
||||
(void)ts; /* remove gcc warning "unused variable" */
|
||||
(void)ref_timestamp_ms; /* remove gcc warning "unused variable" */
|
||||
(void)current_timestamp_ms; /* remove gcc warning "unused variable" */
|
||||
}
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT);
|
||||
|
||||
+23
-11
@@ -798,6 +798,8 @@ rrc_eNB_free_UE(
|
||||
protocol_ctxt_t ctxt;
|
||||
#if !defined(ENABLE_USE_MME)
|
||||
module_id_t ue_module_id;
|
||||
/* avoid gcc warnings */
|
||||
(void)ue_module_id;
|
||||
#endif
|
||||
AssertFatal(enb_mod_idP < NB_eNB_INST, "eNB inst invalid (%d/%d) for UE %x!", enb_mod_idP, NB_eNB_INST, rntiP);
|
||||
ue_context_p = rrc_eNB_get_ue_context(
|
||||
@@ -1133,8 +1135,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
||||
int i;
|
||||
|
||||
// configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
|
||||
eNB_RRC_INST* rrc_inst = &eNB_rrc_inst[ctxt_pP->module_id];
|
||||
struct PhysicalConfigDedicated** physicalConfigDedicated = &ue_context_pP->ue_context.physicalConfigDedicated;
|
||||
//eNB_RRC_INST* rrc_inst = &eNB_rrc_inst[ctxt_pP->module_id];
|
||||
//struct PhysicalConfigDedicated** physicalConfigDedicated = &ue_context_pP->ue_context.physicalConfigDedicated;
|
||||
|
||||
struct SRB_ToAddMod *SRB2_config = NULL;
|
||||
struct SRB_ToAddMod__rlc_Config *SRB2_rlc_config = NULL;
|
||||
@@ -1165,7 +1167,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
||||
#if Rel10
|
||||
long *sr_ProhibitTimer_r9 = NULL;
|
||||
// uint8_t sCellIndexToAdd = rrc_find_free_SCell_index(enb_mod_idP, ue_mod_idP, 1);
|
||||
uint8_t sCellIndexToAdd = 0;
|
||||
//uint8_t sCellIndexToAdd = 0;
|
||||
#endif
|
||||
|
||||
long *logicalchannelgroup, *logicalchannelgroup_drb;
|
||||
@@ -1178,6 +1180,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
||||
CellsToAddModList_t *CellsToAddModList = NULL;
|
||||
struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *dedicatedInfoNASList = NULL;
|
||||
DedicatedInfoNAS_t *dedicatedInfoNas = NULL;
|
||||
/* for no gcc warnings */
|
||||
(void)dedicatedInfoNas;
|
||||
|
||||
C_RNTI_t *cba_RNTI = NULL;
|
||||
#ifdef CBA
|
||||
@@ -1290,6 +1294,10 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
||||
DRB_pdcp_config->rlc_AM = NULL;
|
||||
DRB_pdcp_config->rlc_UM = NULL;
|
||||
|
||||
/* avoid gcc warnings */
|
||||
(void)PDCP_rlc_AM;
|
||||
(void)PDCP_rlc_UM;
|
||||
|
||||
#ifdef RRC_DEFAULT_RAB_IS_AM // EXMIMO_IOT
|
||||
PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
|
||||
DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
|
||||
@@ -2099,8 +2107,8 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
|
||||
QuantityConfig_t *quantityConfig;
|
||||
MobilityControlInfo_t *mobilityInfo;
|
||||
// HandoverCommand_t handoverCommand;
|
||||
uint8_t sourceModId =
|
||||
get_adjacent_cell_mod_id(ue_context_pP->ue_context.handover_info->as_context.reestablishmentInfo->sourcePhysCellId);
|
||||
//uint8_t sourceModId =
|
||||
// get_adjacent_cell_mod_id(ue_context_pP->ue_context.handover_info->as_context.reestablishmentInfo->sourcePhysCellId);
|
||||
#if Rel10
|
||||
long *sr_ProhibitTimer_r9;
|
||||
#endif
|
||||
@@ -2947,7 +2955,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
|
||||
handoverCommand.criticalExtensions.choice.c1.choice.handoverCommand_r8.handoverCommandMessage.buf = buffer;
|
||||
handoverCommand.criticalExtensions.choice.c1.choice.handoverCommand_r8.handoverCommandMessage.size = size;
|
||||
*/
|
||||
#warning "COMPILATION PROBLEM"
|
||||
//#warning "COMPILATION PROBLEM"
|
||||
#ifdef PROBLEM_COMPILATION_RESOLVED
|
||||
|
||||
if (sourceModId != 0xFF) {
|
||||
@@ -3005,6 +3013,10 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
||||
int oip_ifup = 0;
|
||||
int dest_ip_offset = 0;
|
||||
module_id_t ue_module_id = -1;
|
||||
/* avoid gcc warnings */
|
||||
(void)oip_ifup;
|
||||
(void)dest_ip_offset;
|
||||
(void)ue_module_id;
|
||||
#endif
|
||||
|
||||
uint8_t *kRRCenc = NULL;
|
||||
@@ -3012,7 +3024,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
||||
uint8_t *kUPenc = NULL;
|
||||
|
||||
DRB_ToAddModList_t* DRB_configList = ue_context_pP->ue_context.DRB_configList;
|
||||
SRB_ToAddModList_t* SRB_configList = ue_context_pP->ue_context.SRB_configList;
|
||||
//SRB_ToAddModList_t* SRB_configList = ue_context_pP->ue_context.SRB_configList;
|
||||
|
||||
#if defined(ENABLE_SECURITY)
|
||||
|
||||
@@ -3702,7 +3714,7 @@ rrc_eNB_decode_ccch(
|
||||
* the current one must be removed from MAC/PHY (zombie UE)
|
||||
*/
|
||||
if ((ue_context_p = rrc_eNB_ue_context_random_exist(ctxt_pP, random_value))) {
|
||||
#warning "TODO: random_exist: remove UE from MAC/PHY (how?)"
|
||||
//#warning "TODO: random_exist: remove UE from MAC/PHY (how?)"
|
||||
// AssertFatal(0 == 1, "TODO: remove UE from MAC/PHY (how?)");
|
||||
ue_context_p = NULL;
|
||||
} else {
|
||||
@@ -3715,7 +3727,7 @@ rrc_eNB_decode_ccch(
|
||||
m_tmsi_t m_tmsi = BIT_STRING_to_uint32(&s_TMSI.m_TMSI);
|
||||
random_value = (((uint64_t)mme_code) << 32) | m_tmsi;
|
||||
if ((ue_context_p = rrc_eNB_ue_context_stmsi_exist(ctxt_pP, mme_code, m_tmsi))) {
|
||||
#warning "TODO: stmsi_exist: remove UE from MAC/PHY (how?)"
|
||||
//#warning "TODO: stmsi_exist: remove UE from MAC/PHY (how?)"
|
||||
// AssertFatal(0 == 1, "TODO: remove UE from MAC/PHY (how?)");
|
||||
ue_context_p = NULL;
|
||||
} else {
|
||||
@@ -4189,7 +4201,7 @@ rrc_eNB_decode_dcch(
|
||||
// cancel the security mode in PDCP
|
||||
|
||||
// followup with the remaining procedure
|
||||
#warning "LG Removed rrc_eNB_generate_UECapabilityEnquiry after receiving securityModeFailure"
|
||||
//#warning "LG Removed rrc_eNB_generate_UECapabilityEnquiry after receiving securityModeFailure"
|
||||
rrc_eNB_generate_UECapabilityEnquiry(ctxt_pP, ue_context_p);
|
||||
break;
|
||||
|
||||
@@ -4457,7 +4469,7 @@ rrc_enb_task(
|
||||
//SPECTRA: Add the RRC connection reconfiguration with Second cell configuration
|
||||
case RRC_RAL_CONNECTION_RECONFIGURATION_REQ:
|
||||
// ue_mod_id = 0; /* TODO force ue_mod_id to first UE, NAS UE not virtualized yet */
|
||||
#warning "TODO GET RIGHT RNTI"
|
||||
//#warning "TODO GET RIGHT RNTI"
|
||||
PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt,
|
||||
instance,
|
||||
ENB_FLAG_YES,
|
||||
|
||||
@@ -86,6 +86,7 @@ rrc_eNB_process_GTPV1U_CREATE_TUNNEL_RESP(
|
||||
create_tunnel_resp_pP->num_tunnels,
|
||||
ue_context_p->ue_context.enb_gtp_ebi[0],
|
||||
ue_context_p->ue_context.enb_gtp_teid[0]);
|
||||
(void)rnti; /* avoid gcc warning "set but not used" */
|
||||
return 0;
|
||||
} else {
|
||||
return -1;
|
||||
|
||||
@@ -60,6 +60,9 @@
|
||||
#endif
|
||||
#include "msc.h"
|
||||
|
||||
#include "gtpv1u_eNB_task.h"
|
||||
#include "RRC/LITE/rrc_eNB_GTPV1U.h"
|
||||
|
||||
/* Value to indicate an invalid UE initial id */
|
||||
static const uint16_t UE_INITIAL_ID_INVALID = 0;
|
||||
|
||||
@@ -233,7 +236,7 @@ rrc_eNB_get_ue_context_from_s1ap_ids(
|
||||
static e_SecurityAlgorithmConfig__cipheringAlgorithm rrc_eNB_select_ciphering(uint16_t algorithms)
|
||||
{
|
||||
|
||||
#warning "Forced return SecurityAlgorithmConfig__cipheringAlgorithm_eea0, to be deleted in future"
|
||||
//#warning "Forced return SecurityAlgorithmConfig__cipheringAlgorithm_eea0, to be deleted in future"
|
||||
return SecurityAlgorithmConfig__cipheringAlgorithm_eea0;
|
||||
|
||||
if (algorithms & S1AP_ENCRYPTION_EEA2_MASK) {
|
||||
@@ -392,6 +395,7 @@ rrc_pdcp_config_security(
|
||||
#define DEBUG_SECURITY 1
|
||||
|
||||
#if defined (DEBUG_SECURITY)
|
||||
#undef msg
|
||||
#define msg printf
|
||||
|
||||
if (print_keys ==1 ) {
|
||||
@@ -671,7 +675,7 @@ rrc_eNB_send_S1AP_NAS_FIRST_REQ(
|
||||
if (rrcConnectionSetupComplete->registeredMME != NULL) {
|
||||
/* Fill GUMMEI */
|
||||
struct RegisteredMME *r_mme = rrcConnectionSetupComplete->registeredMME;
|
||||
int selected_plmn_identity = rrcConnectionSetupComplete->selectedPLMN_Identity;
|
||||
//int selected_plmn_identity = rrcConnectionSetupComplete->selectedPLMN_Identity;
|
||||
|
||||
S1AP_NAS_FIRST_REQ (message_p).ue_identity.presenceMask |= UE_IDENTITIES_gummei;
|
||||
|
||||
@@ -858,7 +862,7 @@ int rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char
|
||||
{
|
||||
uint16_t ue_initial_id;
|
||||
uint32_t eNB_ue_s1ap_id;
|
||||
MessageDef *message_gtpv1u_p = NULL;
|
||||
//MessageDef *message_gtpv1u_p = NULL;
|
||||
gtpv1u_enb_create_tunnel_req_t create_tunnel_req;
|
||||
gtpv1u_enb_create_tunnel_resp_t create_tunnel_resp;
|
||||
|
||||
@@ -1169,7 +1173,7 @@ int rrc_eNB_process_S1AP_UE_CONTEXT_RELEASE_COMMAND (MessageDef *msg_p, const ch
|
||||
*/
|
||||
{
|
||||
int e_rab;
|
||||
int mod_id = 0;
|
||||
//int mod_id = 0;
|
||||
MessageDef *msg_delete_tunnels_p = NULL;
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
|
||||
@@ -63,6 +63,8 @@ rrc_eNB_S1AP_compare_ue_ids(
|
||||
struct rrc_ue_s1ap_ids_s* c2_pP
|
||||
);
|
||||
|
||||
struct rrc_rnti_tree_s;
|
||||
|
||||
RB_PROTOTYPE(rrc_rnti_tree_s, rrc_ue_s1ap_ids_s, entries, rrc_eNB_S1AP_compare_ue_ids);
|
||||
|
||||
struct rrc_ue_s1ap_ids_s*
|
||||
|
||||
@@ -88,18 +88,24 @@ struct LogicalChannelConfig__ul_SpecificParameters LCSRB2 = {3,
|
||||
};
|
||||
|
||||
|
||||
#ifdef Rel10
|
||||
struct LogicalChannelConfig__ext1 logicalChannelSR_Mask_r9_ext1 = {
|
||||
logicalChannelSR_Mask_r9: &logicalChannelSR_Mask_r9
|
||||
};
|
||||
#endif
|
||||
|
||||
// These are the default SRB configurations from 36.331 (Chapter 9, p. 176-179 in v8.6)
|
||||
LogicalChannelConfig_t SRB1_logicalChannelConfig_defaultValue = {&LCSRB1
|
||||
LogicalChannelConfig_t SRB1_logicalChannelConfig_defaultValue = {ul_SpecificParameters: &LCSRB1
|
||||
#ifdef Rel10
|
||||
,
|
||||
&logicalChannelSR_Mask_r9
|
||||
ext1: &logicalChannelSR_Mask_r9_ext1
|
||||
#endif
|
||||
};
|
||||
|
||||
LogicalChannelConfig_t SRB2_logicalChannelConfig_defaultValue = {&LCSRB2
|
||||
LogicalChannelConfig_t SRB2_logicalChannelConfig_defaultValue = {ul_SpecificParameters: &LCSRB2
|
||||
#ifdef Rel10
|
||||
,
|
||||
&logicalChannelSR_Mask_r9
|
||||
ext1: &logicalChannelSR_Mask_r9_ext1
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
+2
-2
@@ -48,7 +48,7 @@ int lfds611_freelist_new( struct lfds611_freelist_state **fs, lfds611_atom_t num
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_freelist_use( struct lfds611_freelist_state *fs )
|
||||
{
|
||||
@@ -59,7 +59,7 @@ void lfds611_freelist_use( struct lfds611_freelist_state *fs )
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ void lfds611_queue_delete( struct lfds611_queue_state *qs, void (*user_data_dele
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_queue_internal_freelist_delete_function( void *user_data, void *user_state )
|
||||
{
|
||||
@@ -53,5 +53,5 @@ void lfds611_queue_internal_freelist_delete_function( void *user_data, void *use
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ int lfds611_queue_new( struct lfds611_queue_state **qs, lfds611_atom_t number_el
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_queue_use( struct lfds611_queue_state *qs )
|
||||
{
|
||||
@@ -57,14 +57,14 @@ void lfds611_queue_use( struct lfds611_queue_state *qs )
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
int lfds611_queue_internal_freelist_init_function( void **user_data, void *user_state )
|
||||
{
|
||||
@@ -82,7 +82,7 @@ int lfds611_queue_internal_freelist_init_function( void **user_data, void *user_
|
||||
return( rv );
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_queue_query( struct lfds611_queue_state *qs, enum lfds611_queue_query_type query_type, void *query_input, void *query_output )
|
||||
{
|
||||
@@ -31,7 +31,7 @@ void lfds611_queue_query( struct lfds611_queue_state *qs, enum lfds611_queue_que
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -48,7 +48,7 @@ int lfds611_ringbuffer_new( struct lfds611_ringbuffer_state **rs, lfds611_atom_t
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_ringbuffer_use( struct lfds611_ringbuffer_state *rs )
|
||||
{
|
||||
@@ -59,5 +59,5 @@ void lfds611_ringbuffer_use( struct lfds611_ringbuffer_state *rs )
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_ringbuffer_query( struct lfds611_ringbuffer_state *rs, enum lfds611_ringbuffer_query_type query_type, void *query_input, void *query_output )
|
||||
{
|
||||
@@ -26,7 +26,7 @@ void lfds611_ringbuffer_query( struct lfds611_ringbuffer_state *rs, enum lfds611
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ int lfds611_slist_new( struct lfds611_slist_state **ss, void (*user_data_delete_
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_slist_use( struct lfds611_slist_state *ss )
|
||||
{
|
||||
@@ -42,7 +42,7 @@ void lfds611_slist_use( struct lfds611_slist_state *ss )
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ void lfds611_stack_clear( struct lfds611_stack_state *ss, void (*user_data_clear
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_stack_internal_freelist_delete_function( void *user_data, void *user_state )
|
||||
{
|
||||
@@ -63,5 +63,5 @@ void lfds611_stack_internal_freelist_delete_function( void *user_data, void *use
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ int lfds611_stack_new( struct lfds611_stack_state **ss, lfds611_atom_t number_el
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
void lfds611_stack_use( struct lfds611_stack_state *ss )
|
||||
{
|
||||
@@ -53,14 +53,14 @@ void lfds611_stack_use( struct lfds611_stack_state *ss )
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#pragma warning( disable : 4100 )
|
||||
//#pragma warning( disable : 4100 )
|
||||
|
||||
int lfds611_stack_internal_freelist_init_function( void **user_data, void *user_state )
|
||||
{
|
||||
@@ -78,7 +78,7 @@ int lfds611_stack_internal_freelist_init_function( void **user_data, void *user_
|
||||
return( rv );
|
||||
}
|
||||
|
||||
#pragma warning( default : 4100 )
|
||||
//#pragma warning( default : 4100 )
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -706,6 +706,10 @@ void logRecord_mt(const char *file, const char *func, int line, int comp,
|
||||
char *log_start;
|
||||
char *log_end;
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)log_start;
|
||||
(void)log_end;
|
||||
|
||||
c = &g_log->log_component[comp];
|
||||
|
||||
// do not apply filtering for LOG_F
|
||||
@@ -979,6 +983,10 @@ void logRecord_mt(const char *file, const char *func, int line, int comp,
|
||||
*/
|
||||
char log_buffer[MAX_LOG_TOTAL];
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)log_start;
|
||||
(void)log_end;
|
||||
|
||||
c = &g_log->log_component[comp];
|
||||
|
||||
// do not apply filtering for LOG_F
|
||||
|
||||
@@ -158,6 +158,7 @@ remove_node_entry (node_struct * node, node_list * node_vector)
|
||||
|
||||
if (list->next->node->id == node->id) {
|
||||
toremove = tmp; // TODO delete the entry
|
||||
(void)toremove; /* avoid gcc warning "set but not used" */
|
||||
tmp = list->next->next;
|
||||
|
||||
if (tmp != NULL) {
|
||||
@@ -259,13 +260,11 @@ node_list *
|
||||
remove_node (node_list * list, int nid, int node_type)
|
||||
{
|
||||
|
||||
int found;
|
||||
node_list *current = NULL, *previous = NULL;
|
||||
|
||||
//int cond=0;
|
||||
//int i=0;
|
||||
if (list == NULL) {
|
||||
found = 1; //false
|
||||
return NULL;
|
||||
} else {
|
||||
//start search
|
||||
@@ -280,12 +279,10 @@ remove_node (node_list * list, int nid, int node_type)
|
||||
|
||||
//holds: current = NULL or type != node_type or.., but not both
|
||||
if (current == NULL) {
|
||||
found = 1;
|
||||
LOG_E (OMG, " Element to remove is not found\n ");
|
||||
return NULL;
|
||||
} //value not found
|
||||
else {
|
||||
found = 0; // true value found
|
||||
|
||||
if (current == list) {
|
||||
list = current->next;
|
||||
@@ -322,7 +319,6 @@ node_struct *
|
||||
find_node (node_list * list, int nid, int node_type)
|
||||
{
|
||||
|
||||
int found;
|
||||
node_list *current;
|
||||
|
||||
if (list == NULL) {
|
||||
@@ -340,7 +336,6 @@ find_node (node_list * list, int nid, int node_type)
|
||||
|
||||
//holds: current = NULL or type != node_type or.., but not both
|
||||
if (current == NULL) {
|
||||
found = 1;
|
||||
LOG_D (OMG,
|
||||
" Element to find in Node_Vector with ID: %d could not be found\n ",
|
||||
nid);
|
||||
@@ -380,7 +375,7 @@ node_list *
|
||||
reset_node_list (node_list * list)
|
||||
{
|
||||
node_list *tmp;
|
||||
node_list *last = list;
|
||||
//node_list *last = list;
|
||||
|
||||
if (list == NULL) {
|
||||
//printf("Node_list is NULL\n");
|
||||
|
||||
@@ -301,7 +301,7 @@ set_new_mob_type (int id, int node_t, int mob_t, double cur_time)
|
||||
|
||||
int prev_mob;
|
||||
node_list *tmp;
|
||||
job_list *tmp2, *prev_job;
|
||||
//job_list *tmp2, *prev_job;
|
||||
pair_struct *pair;
|
||||
double pause_p;
|
||||
|
||||
|
||||
@@ -173,7 +173,7 @@ place_steadystaterwp_node (node_struct * node)
|
||||
void
|
||||
sleep_steadystaterwp_node (pair_struct * pair, double cur_time)
|
||||
{
|
||||
static int initial = 1;
|
||||
//static int initial = 1;
|
||||
node_struct *node;
|
||||
node = pair->b;
|
||||
node->mobile = 0;
|
||||
@@ -209,10 +209,10 @@ sleep_steadystaterwp_node (pair_struct * pair, double cur_time)
|
||||
void
|
||||
move_steadystaterwp_node (pair_struct * pair, double cur_time)
|
||||
{
|
||||
static int initial = 1;
|
||||
//static int initial = 1;
|
||||
double distance, journeytime_next, max_distance;
|
||||
double temp_x, temp_y, u1, u2;
|
||||
int loc_num;
|
||||
//int loc_num;
|
||||
double pr, block_xmin, block_ymin;
|
||||
|
||||
//LOG_D (OMG, "[STEADY_RWP] move node: %d\n", node->ID);
|
||||
|
||||
@@ -70,7 +70,7 @@ start_sumo_generator (omg_global_param omg_param_list)
|
||||
|
||||
if ((pid = fork ()) == 0) {
|
||||
// Start SUMO in the child process
|
||||
system (sumo_line);
|
||||
if (system (sumo_line)) ; /* this if for no gcc warnings */
|
||||
//childs addresss space
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ int
|
||||
start_trace_generator (omg_global_param omg_param_list)
|
||||
{
|
||||
double cur_time = 0.0;
|
||||
int immobile = 0;
|
||||
//int immobile = 0;
|
||||
int node_number;
|
||||
node_struct *node = NULL;
|
||||
mobility_struct *mobility = NULL;
|
||||
@@ -235,7 +235,7 @@ schedule_trace_node (pair_struct * pair, node_data * n_data, double cur_time)
|
||||
void
|
||||
sleep_trace_node (pair_struct * pair, node_data * n_data, double cur_time)
|
||||
{
|
||||
double journeytime, distance;
|
||||
//double journeytime, distance;
|
||||
node_struct *node = pair->b;
|
||||
node->mobile = 0;
|
||||
node->mob->speed = 0.0;
|
||||
|
||||
@@ -58,8 +58,6 @@ hash_table_t **table;
|
||||
void
|
||||
create_new_table (int node_type)
|
||||
{
|
||||
int i;
|
||||
|
||||
if(table==NULL)
|
||||
table = (hash_table_t **) calloc (MAX_NUM_NODE_TYPES, sizeof (hash_table_t*));
|
||||
|
||||
|
||||
@@ -44,7 +44,9 @@
|
||||
#define Maxneighbor 64
|
||||
#define NUMBER_OF_UE_MAX 64
|
||||
#define NUMBER_OF_eNB_MAX 3
|
||||
#define NB_ANTENNAS_RX 4
|
||||
#ifndef NB_ANTENNAS_RX
|
||||
# define NB_ANTENNAS_RX 4
|
||||
#endif
|
||||
#endif
|
||||
//
|
||||
|
||||
|
||||
@@ -78,7 +78,6 @@ int stream_encrypt_eea1(stream_cipher_t *stream_cipher, uint8_t **out)
|
||||
int n ;
|
||||
int i = 0;
|
||||
uint32_t zero_bit = 0;
|
||||
uint32_t byte_length;
|
||||
uint32_t *KS;
|
||||
uint32_t K[4],IV[4];
|
||||
|
||||
@@ -89,7 +88,6 @@ int stream_encrypt_eea1(stream_cipher_t *stream_cipher, uint8_t **out)
|
||||
|
||||
n = ( stream_cipher->blength + 31 ) / 32;
|
||||
zero_bit = stream_cipher->blength & 0x7;
|
||||
byte_length = stream_cipher->blength >> 3;
|
||||
|
||||
memset(&snow_3g_context, 0, sizeof(snow_3g_context));
|
||||
/*Initialisation*/
|
||||
|
||||
@@ -61,7 +61,7 @@ void tx_throughput(int src, int dst, int application)
|
||||
else if (g_otg->flow_start[src][dst][application] < get_ctime() )
|
||||
otg_info->tx_throughput[src][dst][application]=((double)otg_info->tx_num_bytes[src][dst][application] *1000*8)/ ((get_ctime() - g_otg->flow_start[src][dst][application])*1024);
|
||||
else
|
||||
LOG_W("[src %d][dst %d][app %d] flow start time less than the simu time (start %d, duration %d, ctime %d)\n",
|
||||
LOG_W(OTG, "[src %d][dst %d][app %d] flow start time less than the simu time (start %d, duration %d, ctime %d)\n",
|
||||
src, dst, application,
|
||||
g_otg->flow_start[src][dst][application],
|
||||
g_otg->flow_duration[src][dst][application],
|
||||
@@ -94,7 +94,7 @@ if ((g_otg->flow_start[src][dst][application]+g_otg->flow_duration[src][dst][app
|
||||
else if (g_otg->flow_start[src][dst][application] < get_ctime() )
|
||||
otg_info->rx_goodput[src][dst][application]=((double)otg_info->rx_num_bytes[src][dst][application] *1000*8)/ ((get_ctime() - g_otg->flow_start[src][dst][application])*1024);
|
||||
else
|
||||
LOG_W("[src %d][dst %d][app %d] flow start time less than the simu time (start %d, duration %d, ctime %d)\n",
|
||||
LOG_W(OTG, "[src %d][dst %d][app %d] flow start time less than the simu time (start %d, duration %d, ctime %d)\n",
|
||||
src, dst, application,
|
||||
g_otg->flow_start[src][dst][application],
|
||||
g_otg->flow_duration[src][dst][application],
|
||||
|
||||
@@ -113,7 +113,7 @@ int otg_rx_pkt(const int dst_instanceP, const int ctime, const char * const buff
|
||||
dst_instance = otg_hdr_rx->dst_instance;
|
||||
|
||||
if (dst_instance != dst_instanceP) {
|
||||
#warning "LG: TODO think about multicast traffic"
|
||||
//#warning "LG: TODO think about multicast traffic"
|
||||
LOG_W(OTG,"[SRC %d][DST %d] [FLOW_idx %d][APP TYPE %d] RX INFO pkt at time %d: flag 0x %x, seq number %d, tx time %d, size (hdr %d, pdcp %d) not for dest instance %u\n",
|
||||
dst_instanceP);
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
# define GTPU_ERROR(x, args...) fprintf(stderr, "[GTPU][E]"x, ##args)
|
||||
#endif
|
||||
|
||||
#warning "TO BE REFINED"
|
||||
//#warning "TO BE REFINED"
|
||||
# define GTPU_HEADER_OVERHEAD_MAX 64
|
||||
|
||||
uint32_t gtpv1u_new_teid(void);
|
||||
|
||||
@@ -333,7 +333,7 @@ NwGtpv1uRcT gtpv1u_eNB_process_stack_req(
|
||||
gtpv1u_teid_data_p->eps_bearer_id);
|
||||
#endif
|
||||
|
||||
#warning "LG eps bearer mapping to DRB id to do (offset -4)"
|
||||
//#warning "LG eps bearer mapping to DRB id to do (offset -4)"
|
||||
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, gtpv1u_teid_data_p->enb_id, ENB_FLAG_YES, gtpv1u_teid_data_p->ue_id, 0, 0,gtpv1u_teid_data_p->enb_id);
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
@@ -611,7 +611,7 @@ gtpv1u_new_data_req(
|
||||
if (bearer_p->state != BEARER_UP) {
|
||||
LOG_W(GTPU, "Trying to send data over bearer with state(%u) != BEARER_UP\n",
|
||||
bearer_p->state);
|
||||
#warning LG: HACK WHILE WAITING FOR NAS, normally return -1
|
||||
//#warning LG: HACK WHILE WAITING FOR NAS, normally return -1
|
||||
|
||||
if (bearer_p->state != BEARER_IN_CONFIG)
|
||||
return -1;
|
||||
@@ -673,7 +673,7 @@ gtpv1u_create_s1u_tunnel(
|
||||
teid_t s1u_teid = 0;
|
||||
gtpv1u_teid_data_t *gtpv1u_teid_data_p = NULL;
|
||||
gtpv1u_ue_data_t *gtpv1u_ue_data_p = NULL;
|
||||
MessageDef *message_p = NULL;
|
||||
//MessageDef *message_p = NULL;
|
||||
hashtable_rc_t hash_rc = HASH_TABLE_KEY_NOT_EXISTS;
|
||||
int i;
|
||||
ebi_t eps_bearer_id = 0;
|
||||
@@ -996,7 +996,7 @@ void *gtpv1u_eNB_task(void *args)
|
||||
{
|
||||
int rc = 0;
|
||||
instance_t instance;
|
||||
const char *msg_name_p;
|
||||
//const char *msg_name_p;
|
||||
|
||||
rc = gtpv1u_eNB_init();
|
||||
AssertFatal(rc == 0, "gtpv1u_eNB_init Failed");
|
||||
@@ -1014,7 +1014,7 @@ void *gtpv1u_eNB_task(void *args)
|
||||
DevAssert(received_message_p != NULL);
|
||||
|
||||
instance = ITTI_MSG_INSTANCE(received_message_p);
|
||||
msg_name_p = ITTI_MSG_NAME(received_message_p);
|
||||
//msg_name_p = ITTI_MSG_NAME(received_message_p);
|
||||
|
||||
switch (ITTI_MSG_ID(received_message_p)) {
|
||||
|
||||
@@ -1081,6 +1081,7 @@ void *gtpv1u_eNB_task(void *args)
|
||||
LOG_E(GTPU, "nwGtpv1uGpduMsgNew failed: 0x%x\n", rc);
|
||||
MSC_LOG_EVENT(MSC_GTPU_ENB,"0 Failed send G-PDU ltid %u rtid %u size %u",
|
||||
enb_s1u_teid,sgw_s1u_teid,data_req_p->length);
|
||||
(void)enb_s1u_teid; /* avoid gcc warning "set but not used" */
|
||||
} else {
|
||||
rc = nwGtpv1uProcessUlpReq(gtpv1u_data_g.gtpv1u_stack, &stack_req);
|
||||
|
||||
|
||||
@@ -630,7 +630,7 @@ nwGtpv1uHandleEchoReq(NW_IN NwGtpv1uStackT *thiz,
|
||||
|
||||
bufLen = sizeof(NwGtpv1uIeTv1T)+ ((NwGtpv1uMsgT*)hMsg)->msgLen;
|
||||
|
||||
#warning CROUX DIRTY +16, TO BE FIXED!!!
|
||||
//#warning CROUX DIRTY +16, TO BE FIXED!!!
|
||||
/* the +16 is there because by analyzing memory allocation with some external
|
||||
* tool, I saw that there were 6 bytes accessed after bufLen in nwGtpv1uCreateAndSendMsg
|
||||
* the value "16" has been chosen arbitrarily, just bigger than 6
|
||||
@@ -694,7 +694,7 @@ nwGtpv1uInitialize( NW_INOUT NwGtpv1uStackHandleT *hGtpuStackHandle, uint32_t st
|
||||
if(thiz) {
|
||||
thiz->id = (NwPtrT)thiz;
|
||||
thiz->stackType = stackType;
|
||||
thiz->seq = (uint16_t) ((uint32_t)thiz) ; // FIXME interesting casts... don't know what this is good for...
|
||||
thiz->seq = (uint16_t) ((uintptr_t)thiz) ; // FIXME interesting casts... don't know what this is good for...
|
||||
RB_INIT(&(thiz->outstandingTxSeqNumMap));
|
||||
RB_INIT(&(thiz->outstandingRxSeqNumMap));
|
||||
RB_INIT(&(thiz->sessionMap));
|
||||
|
||||
@@ -323,7 +323,7 @@ int nas_message_decrypt(
|
||||
#if defined(NAS_MME)
|
||||
LOG_FUNC_RETURN (TLV_DECODE_MAC_MISMATCH);
|
||||
#else
|
||||
#warning "added test on integrity algorithm because of SECURITY_MODE_COMMAND not correctly handled in UE (check integrity)"
|
||||
//#warning "added test on integrity algorithm because of SECURITY_MODE_COMMAND not correctly handled in UE (check integrity)"
|
||||
|
||||
if (emm_security_context->selected_algorithms.integrity !=
|
||||
NAS_SECURITY_ALGORITHMS_EIA0) {
|
||||
@@ -1016,10 +1016,10 @@ static int _nas_message_decrypt(
|
||||
stream_cipher.count = count;
|
||||
stream_cipher.bearer = 0x00; //33.401 section 8.1.1
|
||||
stream_cipher.direction = direction;
|
||||
stream_cipher.message = src;
|
||||
stream_cipher.message = (unsigned char *)src;
|
||||
/* length in bits */
|
||||
stream_cipher.blength = length << 3;
|
||||
nas_stream_encrypt_eea1(&stream_cipher, dest);
|
||||
nas_stream_encrypt_eea1(&stream_cipher, (unsigned char *)dest);
|
||||
/* Decode the first octet (security header type or EPS bearer identity,
|
||||
* and protocol discriminator) */
|
||||
DECODE_U8(dest, *(uint8_t*)(&header), size);
|
||||
@@ -1050,10 +1050,10 @@ static int _nas_message_decrypt(
|
||||
stream_cipher.count = count;
|
||||
stream_cipher.bearer = 0x00; //33.401 section 8.1.1
|
||||
stream_cipher.direction = direction;
|
||||
stream_cipher.message = src;
|
||||
stream_cipher.message = (unsigned char *)src;
|
||||
/* length in bits */
|
||||
stream_cipher.blength = length << 3;
|
||||
nas_stream_encrypt_eea1(&stream_cipher, dest);
|
||||
nas_stream_encrypt_eea1(&stream_cipher, (unsigned char *)dest);
|
||||
/* Decode the first octet (security header type or EPS bearer identity,
|
||||
* and protocol discriminator) */
|
||||
DECODE_U8(dest, *(uint8_t*)(&header), size);
|
||||
@@ -1178,10 +1178,10 @@ static int _nas_message_encrypt(
|
||||
stream_cipher.count = count;
|
||||
stream_cipher.bearer = 0x00; //33.401 section 8.1.1
|
||||
stream_cipher.direction = direction;
|
||||
stream_cipher.message = src;
|
||||
stream_cipher.message = (unsigned char *)src;
|
||||
/* length in bits */
|
||||
stream_cipher.blength = length << 3;
|
||||
nas_stream_encrypt_eea1(&stream_cipher, dest);
|
||||
nas_stream_encrypt_eea1(&stream_cipher, (unsigned char *)dest);
|
||||
|
||||
LOG_FUNC_RETURN (length);
|
||||
|
||||
@@ -1209,10 +1209,10 @@ static int _nas_message_encrypt(
|
||||
stream_cipher.count = count;
|
||||
stream_cipher.bearer = 0x00; //33.401 section 8.1.1
|
||||
stream_cipher.direction = direction;
|
||||
stream_cipher.message = src;
|
||||
stream_cipher.message = (unsigned char *)src;
|
||||
/* length in bits */
|
||||
stream_cipher.blength = length << 3;
|
||||
nas_stream_encrypt_eea2(&stream_cipher, dest);
|
||||
nas_stream_encrypt_eea2(&stream_cipher, (unsigned char *)dest);
|
||||
|
||||
LOG_FUNC_RETURN (length);
|
||||
|
||||
@@ -1344,7 +1344,7 @@ static uint32_t _nas_message_get_mac(
|
||||
stream_cipher.count = count;
|
||||
stream_cipher.bearer = 0x00; //33.401 section 8.1.1
|
||||
stream_cipher.direction = direction;
|
||||
stream_cipher.message = buffer;
|
||||
stream_cipher.message = (unsigned char *)buffer;
|
||||
/* length in bits */
|
||||
stream_cipher.blength = length << 3;
|
||||
|
||||
@@ -1390,7 +1390,7 @@ static uint32_t _nas_message_get_mac(
|
||||
stream_cipher.count = count;
|
||||
stream_cipher.bearer = 0x00; //33.401 section 8.1.1
|
||||
stream_cipher.direction = direction;
|
||||
stream_cipher.message = buffer;
|
||||
stream_cipher.message = (unsigned char *)buffer;
|
||||
/* length in bits */
|
||||
stream_cipher.blength = length << 3;
|
||||
|
||||
|
||||
@@ -214,7 +214,7 @@ int encode_attach_accept(attach_accept_msg *attach_accept, uint8_t *buffer, uint
|
||||
|
||||
*(buffer + encoded) = (encode_u8_eps_attach_result(&attach_accept->epsattachresult) & 0x0f);
|
||||
encoded++;
|
||||
#warning "LG TEST override t3412value"
|
||||
//#warning "LG TEST override t3412value"
|
||||
attach_accept->t3412value.unit = GPRS_TIMER_UNIT_360S;
|
||||
attach_accept->t3412value.timervalue = 10;
|
||||
|
||||
@@ -288,7 +288,7 @@ int encode_attach_accept(attach_accept_msg *attach_accept, uint8_t *buffer, uint
|
||||
encoded += encode_result;
|
||||
}
|
||||
|
||||
#warning "LG TEST override t3402value"
|
||||
//#warning "LG TEST override t3402value"
|
||||
attach_accept->presencemask |= ATTACH_ACCEPT_T3402_VALUE_PRESENT;
|
||||
attach_accept->t3402value.unit = GPRS_TIMER_UNIT_60S;
|
||||
attach_accept->t3402value.timervalue = 12;
|
||||
|
||||
@@ -54,9 +54,9 @@ int decode_ms_network_feature_support(MsNetworkFeatureSupport *msnetworkfeatures
|
||||
}
|
||||
int encode_ms_network_feature_support(MsNetworkFeatureSupport *msnetworkfeaturesupport, uint8_t iei, uint8_t *buffer, uint32_t len)
|
||||
{
|
||||
uint8_t *lenPtr;
|
||||
//uint8_t *lenPtr;
|
||||
uint32_t encoded = 0;
|
||||
int encode_result;
|
||||
//int encode_result;
|
||||
/* Checking IEI and pointer */
|
||||
CHECK_PDU_POINTER_AND_LENGTH_ENCODER(buffer, MS_NETWORK_FEATURE_SUPPORT_MINIMUM_LENGTH, len);
|
||||
#if defined (NAS_DEBUG)
|
||||
|
||||
@@ -81,7 +81,7 @@ int decode_ue_network_capability(UeNetworkCapability *uenetworkcapability, uint8
|
||||
LOG_TRACE(INFO, "uenetworkcapability decoded GPRS\n");
|
||||
}
|
||||
|
||||
#warning "Force GPRS present if UMTS present"
|
||||
//#warning "Force GPRS present if UMTS present"
|
||||
uenetworkcapability->gprs_present =1;
|
||||
}
|
||||
}
|
||||
@@ -131,7 +131,7 @@ int encode_ue_network_capability(UeNetworkCapability *uenetworkcapability, uint8
|
||||
}
|
||||
|
||||
if (uenetworkcapability->gprs_present) {
|
||||
#warning "Force gea to 0x60"
|
||||
//#warning "Force gea to 0x60"
|
||||
*(buffer + encoded) = 0x00 | 0x60;
|
||||
////((uenetworkcapability->spare & 0x7) << 5) | // spare coded as zero
|
||||
//((uenetworkcapability->csfb & 0x1) << 4) |
|
||||
|
||||
@@ -481,7 +481,7 @@ static void _display_emm_data(const emm_nvdata_t* data)
|
||||
data->imsi.u.num.digit13,
|
||||
data->imsi.u.num.digit14);
|
||||
} else {
|
||||
printf("%u%u%u.%u%u%u.%u%u%u%u%u%u%u%u\n",
|
||||
printf("%u%u%u.%u%u%u.%u%u%u%u%u%u%u%u%u\n",
|
||||
data->imsi.u.num.digit1,
|
||||
data->imsi.u.num.digit2,
|
||||
data->imsi.u.num.digit3,
|
||||
|
||||
@@ -289,9 +289,9 @@ int usim_api_authenticate(const OctetString* rand_pP, const OctetString* autn_pP
|
||||
#define USIM_API_SQN_MS_SIZE 3
|
||||
|
||||
for (i = 0; i < USIM_API_SQN_MS_SIZE; i++) {
|
||||
#warning "LG:BUG HERE TODO"
|
||||
//#warning "LG:BUG HERE TODO"
|
||||
sqn_ms[USIM_API_SQNMS_SIZE - i] =
|
||||
((uint8_t*)(_usim_api_data.sqn_ms))[USIM_API_SQN_MS_SIZE - i];
|
||||
((uint8_t*)(&_usim_api_data.sqn_ms))[USIM_API_SQN_MS_SIZE - i];
|
||||
}
|
||||
|
||||
u8 sqnms[USIM_API_SQNMS_SIZE];
|
||||
|
||||
@@ -130,7 +130,7 @@ int emm_proc_status(unsigned int ueid, int emm_cause)
|
||||
emm_sap_t emm_sap;
|
||||
|
||||
emm_security_context_t *sctx = NULL;
|
||||
struct emm_data_context_s *ctx = NULL;
|
||||
//struct emm_data_context_s *ctx = NULL;
|
||||
|
||||
LOG_TRACE(INFO,"EMM-PROC - EMM status procedure requested");
|
||||
|
||||
|
||||
@@ -261,7 +261,7 @@ int lowerlayer_data_req(unsigned int ueid, const OctetString *data)
|
||||
int rc;
|
||||
emm_sap_t emm_sap;
|
||||
emm_security_context_t *sctx = NULL;
|
||||
struct emm_data_context_s *ctx = NULL;
|
||||
//struct emm_data_context_s *ctx = NULL;
|
||||
|
||||
emm_sap.primitive = EMMAS_DATA_REQ;
|
||||
emm_sap.u.emm_as.u.data.guti = _emm_data.guti;
|
||||
|
||||
@@ -215,7 +215,7 @@ emm_fsm_state_t _emm_fsm_status[EMM_FSM_NB_UE_MAX];
|
||||
***************************************************************************/
|
||||
void emm_fsm_initialize(void)
|
||||
{
|
||||
int ueid;
|
||||
//int ueid;
|
||||
LOG_FUNC_IN;
|
||||
|
||||
_emm_fsm_status[0] = EMM_NULL;
|
||||
|
||||
@@ -114,6 +114,9 @@ int emm_reg_send(const emm_reg_t *msg)
|
||||
emm_reg_primitive_t primitive = msg->primitive;
|
||||
assert( (primitive > _EMMREG_START) && (primitive < _EMMREG_END));
|
||||
|
||||
/* avoid gcc warnings */
|
||||
(void)primitive;
|
||||
|
||||
/* Execute the EMM procedure */
|
||||
rc = emm_fsm_process(msg);
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ int esm_ebr_context_create(
|
||||
int bid = 0;
|
||||
esm_data_context_t *esm_ctx = NULL;
|
||||
esm_pdn_t *pdn = NULL;
|
||||
unsigned int ueid = 0;
|
||||
//unsigned int ueid = 0;
|
||||
|
||||
LOG_FUNC_IN;
|
||||
|
||||
@@ -212,7 +212,7 @@ int esm_ebr_context_create(
|
||||
{
|
||||
char *tmp = NULL;
|
||||
char ipv4_addr[INET_ADDRSTRLEN];
|
||||
char ipv6_addr[INET6_ADDRSTRLEN];
|
||||
//char ipv6_addr[INET6_ADDRSTRLEN];
|
||||
char *netmask = NULL;
|
||||
char broadcast[INET_ADDRSTRLEN];
|
||||
struct in_addr in_addr;
|
||||
@@ -221,7 +221,8 @@ int esm_ebr_context_create(
|
||||
|
||||
switch (pdn->type) {
|
||||
case NET_PDN_TYPE_IPV4V6:
|
||||
ipv6_addr[0] = pdn->ip_addr[4];
|
||||
//ipv6_addr[0] = pdn->ip_addr[4];
|
||||
/* TODO? */
|
||||
|
||||
// etc
|
||||
case NET_PDN_TYPE_IPV4:
|
||||
@@ -283,11 +284,12 @@ int esm_ebr_context_create(
|
||||
res = sprintf(command_line,
|
||||
"ifconfig oip1 %s netmask %s broadcast %s up",
|
||||
ipv4_addr, netmask, broadcast);
|
||||
(void)res; /* avoid gcc warning "set but not used" */
|
||||
// AssertFatal((res > 0) && (res < 128),
|
||||
// "error in system command line");
|
||||
LOG_TRACE(INFO, "ESM-PROC - executing %s ",
|
||||
command_line);
|
||||
system(command_line);
|
||||
if (system(command_line)) ; /* TODO: what to do? */
|
||||
break;
|
||||
|
||||
case NET_PDN_TYPE_IPV6:
|
||||
@@ -341,7 +343,7 @@ int esm_ebr_context_release(
|
||||
esm_pdn_t *pdn = NULL;
|
||||
esm_data_context_t *esm_ctx;
|
||||
|
||||
unsigned int ueid = 0;
|
||||
//unsigned int ueid = 0;
|
||||
|
||||
LOG_FUNC_IN;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
asn_enc_rval_t OCTET_STRING_encode_aper(asn_TYPE_descriptor_t *td, asn_per_constraints_t *cts, void *sptr, asn_per_outp_t *po) { asn_enc_rval_t er = { 0, 0, 0 }; (void)td; (void)cts; (void)sptr; (void)po; return er; }
|
||||
|
||||
+asn_comp_rval_t * OCTET_STRING_compare(asn_TYPE_descriptor_t *td1, void *sptr1, asn_TYPE_descriptor_t *td2, void *sptr2) { (void)td1; (void)sptr1; (void)td2; (void)sptr2; return 0; }
|
||||
+asn_comp_rval_t * OCTET_STRING_compare(asn_TYPE_descriptor_t *td1, const void *sptr1, asn_TYPE_descriptor_t *td2, const void *sptr2) { (void)td1; (void)sptr1; (void)td2; (void)sptr2; return 0; }
|
||||
+
|
||||
size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { (void)chunk_buf; (void)chunk_size; return 0; }
|
||||
--- libasn1compiler/asn1c_C.c 2015-12-08 14:39:33.366543533 +0100
|
||||
@@ -51,9 +51,9 @@
|
||||
+ if(HIDE_INNER_DEFS) OUT("_%d", expr->_type_unique_index);
|
||||
+ OUT("_compare(asn_TYPE_descriptor_t *td1,\n");
|
||||
+ INDENTED(
|
||||
+ OUT("\tvoid *structure1,\n");
|
||||
+ OUT("\tconst void *structure1,\n");
|
||||
+ OUT("\tasn_TYPE_descriptor_t *td2,\n");
|
||||
+ OUT("\tvoid *structure2) {\n");
|
||||
+ OUT("\tconst void *structure2) {\n");
|
||||
+ OUT("asn_comp_rval_t * res = NULL;\n");
|
||||
+ OUT("%s_%d_inherit_TYPE_descriptor(td1);\n",
|
||||
+ p, expr->_type_unique_index);
|
||||
@@ -142,8 +142,8 @@
|
||||
+typedef struct asn_comp_rval_s {
|
||||
+ enum COMPARE_ERR_CODE_e err_code;
|
||||
+ char *name; // e_S1ap_ProtocolIE_ID not available for all ASN1 use (RRC vs S1AP, X2AP)
|
||||
+ void *structure1;
|
||||
+ void *structure2;
|
||||
+ const void *structure1;
|
||||
+ const void *structure2;
|
||||
+ struct asn_comp_rval_s *next;
|
||||
+} asn_comp_rval_t;
|
||||
+
|
||||
@@ -234,7 +234,7 @@
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+BOOLEAN_compare(asn_TYPE_descriptor_t *td1,
|
||||
+ void *sptr1, asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+ const void *sptr1, asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const BOOLEAN_t *st1 = (const BOOLEAN_t *)sptr1;
|
||||
+ const BOOLEAN_t *st2 = (const BOOLEAN_t *)sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
@@ -279,9 +279,9 @@
|
||||
+
|
||||
+typedef asn_comp_rval_t * (type_compare_f)(
|
||||
+ struct asn_TYPE_descriptor_s *type_descriptor1,
|
||||
+ void *struct_ptr1,
|
||||
+ const void *struct_ptr1,
|
||||
+ struct asn_TYPE_descriptor_s *type_descriptor2,
|
||||
+ void *struct_ptr2
|
||||
+ const void *struct_ptr2
|
||||
+);
|
||||
+
|
||||
+
|
||||
@@ -299,7 +299,7 @@
|
||||
}
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+CHOICE_compare(asn_TYPE_descriptor_t *td1, void *sptr1, asn_TYPE_descriptor_t *td2, void *sptr2)
|
||||
+CHOICE_compare(asn_TYPE_descriptor_t *td1, const void *sptr1, asn_TYPE_descriptor_t *td2, const void *sptr2)
|
||||
+{
|
||||
+ asn_CHOICE_specifics_t *specs1 = (asn_CHOICE_specifics_t *)td1->specifics;
|
||||
+ asn_CHOICE_specifics_t *specs2 = (asn_CHOICE_specifics_t *)td2->specifics;
|
||||
@@ -392,14 +392,13 @@
|
||||
}
|
||||
--- skeletons/constr_SEQUENCE.c 2015-12-08 14:39:33.346543533 +0100
|
||||
+++ skeletons/constr_SEQUENCE.c 2015-12-08 10:39:52.442558000 +0100
|
||||
@@ -1761,3 +1761,66 @@
|
||||
@@ -1761,3 +1761,65 @@
|
||||
|
||||
_ASN_ENCODED_OK(er);
|
||||
}
|
||||
+
|
||||
+asn_comp_rval_t * SEQUENCE_compare(asn_TYPE_descriptor_t *td1, void *sptr1, asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+asn_comp_rval_t * SEQUENCE_compare(asn_TYPE_descriptor_t *td1, const void *sptr1, asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ int edx;
|
||||
+ int ret;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
+ asn_comp_rval_t *res2 = NULL;
|
||||
+
|
||||
@@ -498,7 +497,7 @@
|
||||
}
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+SET_compare(asn_TYPE_descriptor_t *td1, void *sptr1, asn_TYPE_descriptor_t *td2, void *sptr2)
|
||||
+SET_compare(asn_TYPE_descriptor_t *td1, const void *sptr1, asn_TYPE_descriptor_t *td2, const void *sptr2)
|
||||
+{
|
||||
+ int edx;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
@@ -563,19 +562,18 @@
|
||||
* Some handy helpers. *
|
||||
--- skeletons/constr_SET_OF.c 2015-12-08 14:39:33.338543533 +0100
|
||||
+++ skeletons/constr_SET_OF.c 2015-12-08 10:45:54.466557000 +0100
|
||||
@@ -1039,3 +1039,55 @@
|
||||
@@ -1039,3 +1039,54 @@
|
||||
rv.consumed = 0;
|
||||
return rv;
|
||||
}
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+SET_OF_compare(asn_TYPE_descriptor_t *td1, void *sptr1, asn_TYPE_descriptor_t *td2, void *sptr2)
|
||||
+SET_OF_compare(asn_TYPE_descriptor_t *td1, const void *sptr1, asn_TYPE_descriptor_t *td2, const void *sptr2)
|
||||
+{
|
||||
+ asn_TYPE_member_t *elm1 = td1->elements;
|
||||
+ asn_TYPE_member_t *elm2 = td2->elements;
|
||||
+ const asn_anonymous_set_ *list1 = _A_CSET_FROM_VOID(sptr1);
|
||||
+ const asn_anonymous_set_ *list2 = _A_CSET_FROM_VOID(sptr2);
|
||||
+ int ret;
|
||||
+ int i;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
+ asn_comp_rval_t *res2 = NULL;
|
||||
@@ -667,10 +665,10 @@
|
||||
}
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+ENUMERATED_compare(asn_TYPE_descriptor_t *td1, void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+ ENUMERATED_t *st1 = (ENUMERATED_t *)sptr1;
|
||||
+ ENUMERATED_t *st2 = (ENUMERATED_t *)sptr2;
|
||||
+ENUMERATED_compare(asn_TYPE_descriptor_t *td1, const void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const ENUMERATED_t *st1 = (const ENUMERATED_t *)sptr1;
|
||||
+ const ENUMERATED_t *st2 = (const ENUMERATED_t *)sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
+
|
||||
+ COMPARE_CHECK_ARGS(td1, td2, sptr1, sptr2, res)
|
||||
@@ -774,10 +772,10 @@
|
||||
|
||||
|
||||
+asn_comp_rval_t *
|
||||
+INTEGER_compare(asn_TYPE_descriptor_t *td1, void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+ INTEGER_t *st1 = (INTEGER_t *)sptr1;
|
||||
+ INTEGER_t *st2 = (INTEGER_t *)sptr2;
|
||||
+INTEGER_compare(asn_TYPE_descriptor_t *td1, const void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const INTEGER_t *st1 = (const INTEGER_t *)sptr1;
|
||||
+ const INTEGER_t *st2 = (const INTEGER_t *)sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
+
|
||||
+ COMPARE_CHECK_ARGS(td1, td2, sptr1, sptr2, res)
|
||||
@@ -857,8 +855,8 @@
|
||||
}
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+NativeEnumerated_compare(asn_TYPE_descriptor_t *td1, void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+NativeEnumerated_compare(asn_TYPE_descriptor_t *td1, const void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const asn_INTEGER_enum_map_t *a = sptr1;
|
||||
+ const asn_INTEGER_enum_map_t *b = sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
@@ -902,8 +900,8 @@
|
||||
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+NativeInteger_compare(asn_TYPE_descriptor_t *td1, void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+NativeInteger_compare(asn_TYPE_descriptor_t *td1, const void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const long *native1 = (const long *)sptr1;
|
||||
+ const long *native2 = (const long *)sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
@@ -945,10 +943,10 @@
|
||||
}
|
||||
|
||||
+asn_comp_rval_t *
|
||||
+NativeReal_compare(asn_TYPE_descriptor_t *td1, void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+ REAL_t *st1 = (REAL_t *)sptr1;
|
||||
+ REAL_t *st2 = (REAL_t *)sptr2;
|
||||
+NativeReal_compare(asn_TYPE_descriptor_t *td1, const void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const REAL_t *st1 = (const REAL_t *)sptr1;
|
||||
+ const REAL_t *st2 = (const REAL_t *)sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
+
|
||||
+ COMPARE_CHECK_ARGS(td1, td2, sptr1, sptr2, res)
|
||||
@@ -999,8 +997,8 @@
|
||||
}
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+NULL_compare(asn_TYPE_descriptor_t *td1, void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+NULL_compare(asn_TYPE_descriptor_t *td1, const void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
@@ -1068,9 +1066,9 @@
|
||||
|
||||
+asn_comp_rval_t *
|
||||
+OCTET_STRING_compare(asn_TYPE_descriptor_t *td1,
|
||||
+ void *sptr1, asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+ OCTET_STRING_t *st1 = (OCTET_STRING_t *)sptr1;
|
||||
+ OCTET_STRING_t *st2 = (OCTET_STRING_t *)sptr2;
|
||||
+ const void *sptr1, asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const OCTET_STRING_t *st1 = (const OCTET_STRING_t *)sptr1;
|
||||
+ const OCTET_STRING_t *st2 = (const OCTET_STRING_t *)sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
+
|
||||
+ COMPARE_CHECK_ARGS(td1, td2, sptr1, sptr2, res)
|
||||
@@ -1134,10 +1132,10 @@
|
||||
+
|
||||
+
|
||||
+asn_comp_rval_t *
|
||||
+REAL_compare(asn_TYPE_descriptor_t *td1, void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, void *sptr2) {
|
||||
+ REAL_t *st1 = (REAL_t *)sptr1;
|
||||
+ REAL_t *st2 = (REAL_t *)sptr2;
|
||||
+REAL_compare(asn_TYPE_descriptor_t *td1, const void *sptr1,
|
||||
+ asn_TYPE_descriptor_t *td2, const void *sptr2) {
|
||||
+ const REAL_t *st1 = (const REAL_t *)sptr1;
|
||||
+ const REAL_t *st2 = (const REAL_t *)sptr2;
|
||||
+ asn_comp_rval_t *res = NULL;
|
||||
+
|
||||
+ COMPARE_CHECK_ARGS(td1, td2, sptr1, sptr2, res)
|
||||
|
||||
@@ -859,11 +859,12 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id,
|
||||
|
||||
break;
|
||||
|
||||
#warning "TODO mapping mme_ue_s1ap_id enb_ue_s1ap_id?"
|
||||
//#warning "TODO mapping mme_ue_s1ap_id enb_ue_s1ap_id?"
|
||||
|
||||
case S1ap_UE_S1AP_IDs_PR_mME_UE_S1AP_ID:
|
||||
mme_ue_s1ap_id = ueContextReleaseCommand_p->uE_S1AP_IDs.choice.mME_UE_S1AP_ID;
|
||||
S1AP_ERROR("TO DO mapping mme_ue_s1ap_id enb_ue_s1ap_id");
|
||||
(void)mme_ue_s1ap_id; /* TODO: remove - it's to remove gcc warning about unused var */
|
||||
|
||||
case S1ap_UE_S1AP_IDs_PR_NOTHING:
|
||||
default:
|
||||
|
||||
@@ -191,7 +191,7 @@ int s1ap_eNB_handle_nas_first_req(
|
||||
* The cell identity is defined on 28 bits but as we use macro enb id,
|
||||
* we have to pad.
|
||||
*/
|
||||
#warning "TODO get cell id from RRC"
|
||||
//#warning "TODO get cell id from RRC"
|
||||
MACRO_ENB_ID_TO_CELL_IDENTITY(instance_p->eNB_id,
|
||||
0, // Cell ID
|
||||
&initial_ue_message_p->eutran_cgi.cell_ID);
|
||||
@@ -400,7 +400,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
|
||||
s1ap_eNB_instance_p->mnc_digit_length,
|
||||
&uplink_NAS_transport_p->eutran_cgi.pLMNidentity);
|
||||
|
||||
#warning "TODO get cell id from RRC"
|
||||
//#warning "TODO get cell id from RRC"
|
||||
MACRO_ENB_ID_TO_CELL_IDENTITY(s1ap_eNB_instance_p->eNB_id,
|
||||
0,
|
||||
&uplink_NAS_transport_p->eutran_cgi.cell_ID);
|
||||
|
||||
@@ -148,7 +148,7 @@ sctp_handle_new_association_req(
|
||||
DevAssert(sctp_new_association_req_p != NULL);
|
||||
|
||||
/* Create new socket with IPv6 affinity */
|
||||
#warning "SCTP may Force IPv4 only, here"
|
||||
//#warning "SCTP may Force IPv4 only, here"
|
||||
#ifdef NO_VIRTUAL_MACHINE
|
||||
|
||||
// in init chunk appears a list of host addresses, IPv4 and IPv4 in an arbitrary (unsorted) order
|
||||
|
||||
@@ -49,7 +49,7 @@ int nas_stream_encrypt_eea1(nas_stream_cipher_t *stream_cipher, uint8_t *out)
|
||||
int n ;
|
||||
int i = 0;
|
||||
uint32_t zero_bit = 0;
|
||||
uint32_t byte_length;
|
||||
//uint32_t byte_length;
|
||||
uint32_t *KS;
|
||||
uint32_t K[4],IV[4];
|
||||
|
||||
@@ -60,7 +60,7 @@ int nas_stream_encrypt_eea1(nas_stream_cipher_t *stream_cipher, uint8_t *out)
|
||||
|
||||
n = ( stream_cipher->blength + 31 ) / 32;
|
||||
zero_bit = stream_cipher->blength & 0x7;
|
||||
byte_length = stream_cipher->blength >> 3;
|
||||
//byte_length = stream_cipher->blength >> 3;
|
||||
|
||||
memset(&snow_3g_context, 0, sizeof(snow_3g_context));
|
||||
/*Initialisation*/
|
||||
|
||||
@@ -112,6 +112,7 @@ int nas_stream_encrypt_eia2(nas_stream_cipher_t *stream_cipher, uint8_t out[4])
|
||||
cmac_ctx = CMAC_CTX_new();
|
||||
ret = CMAC_Init(cmac_ctx, stream_cipher->key, stream_cipher->key_length, cipher, NULL);
|
||||
ret = CMAC_Update(cmac_ctx, m, m_length + 8);
|
||||
(void)ret; /* avoid gcc warning "set but not used" */
|
||||
CMAC_Final(cmac_ctx, data, &size);
|
||||
CMAC_CTX_free(cmac_ctx);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user