Commit 3fcf6433 authored by 111's avatar 111

cap data local

parent a9c8b1b6
...@@ -15,7 +15,12 @@ used to send PDSCH/PUSCH DMRS to client ...@@ -15,7 +15,12 @@ used to send PDSCH/PUSCH DMRS to client
sem_t ric_send_sem; sem_t ric_send_sem;
//uint8_t ric_test_data[]={0,1,2,3,4,5,6,7,8,9}; //uint8_t ric_test_data[]={0,1,2,3,4,5,6,7,8,9};
uint8_t *ric_send_buf; uint8_t *ric_send_buf;
uint8_t *ric_send_buf_tmp;
int ric_send_len; int ric_send_len;
extern int g_dmrs_cnt;
#define CAP_DATA_LOCAL
#define RIC_INTERFACE_PORT 7788 #define RIC_INTERFACE_PORT 7788
#define RIC_INTERFACE_SOCKET_MAX_LEN (100+4*273*12)*4 //52516 #define RIC_INTERFACE_SOCKET_MAX_LEN (100+4*273*12)*4 //52516
//#define RIC_INTERFACE_SOCKET_MAX_LEN 65536 //#define RIC_INTERFACE_SOCKET_MAX_LEN 65536
...@@ -37,15 +42,21 @@ void *ric_interface_task(void *args_p) ...@@ -37,15 +42,21 @@ void *ric_interface_task(void *args_p)
struct sockaddr_in stLocalAddr = {0}; //本地地址信息结构图,下面有具体的属性赋值 struct sockaddr_in stLocalAddr = {0}; //本地地址信息结构图,下面有具体的属性赋值
struct sockaddr_in stRemoteAddr = {0}; //对方地址信息 struct sockaddr_in stRemoteAddr = {0}; //对方地址信息
socklen_t socklen = 0; socklen_t socklen = 0;
int cnt = 0;
int outputdata = 1;
char c;
ric_send_buf_tmp = malloc(RIC_INTERFACE_SOCKET_MAX_LEN);
#ifdef RIC_TEST_SERVER #ifdef RIC_TEST_SERVER
int gnb_flag = 0; int gnb_flag = 0;
ric_send_buf = malloc(RIC_INTERFACE_SOCKET_MAX_LEN);
ric_send_buf[0] = 0x1E; ric_send_buf_tmp[0] = 0x1E;
ric_send_buf[10] = 0x20; ric_send_buf_tmp[10] = 0x20;
ric_send_len = RIC_INTERFACE_SOCKET_MAX_LEN; ric_send_len = RIC_INTERFACE_SOCKET_MAX_LEN;
#else #else
int gnb_flag = *(int*)args_p; int gnb_flag = *(int*)args_p;
#endif #endif
#ifndef CAP_DATA_LOCAL
iSocketFD = socket(AF_INET, SOCK_STREAM, 0); //建立socket iSocketFD = socket(AF_INET, SOCK_STREAM, 0); //建立socket
if(0 > iSocketFD) if(0 > iSocketFD)
{ {
...@@ -64,10 +75,11 @@ void *ric_interface_task(void *args_p) ...@@ -64,10 +75,11 @@ void *ric_interface_task(void *args_p)
perror("绑定失败!"); perror("绑定失败!");
return; return;
} }
#endif
while(1) while(1)
{ {
#ifndef CAP_DATA_LOCAL
//开启监听 ,第二个参数是最大监听数 //开启监听 ,第二个参数是最大监听数
if(0 > listen(iSocketFD, 1)) if(0 > listen(iSocketFD, 1))
{ {
...@@ -95,8 +107,16 @@ void *ric_interface_task(void *args_p) ...@@ -95,8 +107,16 @@ void *ric_interface_task(void *args_p)
// }else{ // }else{
// printf("buf: %s\n", buf); // printf("buf: %s\n", buf);
// } // }
#else
printf("bigin to capture data\n");
#endif
int send_len; int send_len;
int log_cnt=0;
char filename[1024];
FILE *output_fd = NULL;
sprintf(filename,"srs_data_4ant_freq_%d.am",0);
output_fd = fopen(filename,"w+");
fclose(output_fd);
while(1) while(1)
{ {
// printf ("wait for ric_send_sem \n"); // printf ("wait for ric_send_sem \n");
...@@ -105,16 +125,66 @@ void *ric_interface_task(void *args_p) ...@@ -105,16 +125,66 @@ void *ric_interface_task(void *args_p)
#else #else
sem_wait (&ric_send_sem); sem_wait (&ric_send_sem);
#endif #endif
memcpy(ric_send_buf_tmp, ric_send_buf, ric_send_len);
printf ("got ric_send_sem ric_send_buf_tmp addr %p ric_send_buf %p\n", ric_send_buf_tmp, ric_send_buf);
#ifdef CAP_DATA_LOCAL
{
if (cnt % 4 == 0)
{
FILE *input_fd=NULL;
int readlen;
input_fd = fopen("output_flag.txt","r");
if (input_fd==NULL){
printf("Error opening0 \n");
}
else
{
c=fgetc(input_fd);
if ((outputdata == 0) && (c - '0' == 1))
{
log_cnt = 0;
}
outputdata = c - '0';
if(outputdata == 0)
printf("~~~~~~~~outputdata is %d, log_cnt %d", outputdata, log_cnt);
fclose(input_fd);
}
}
//if ((outputdata == 1) && (log_cnt < 10))
if ((outputdata == 1)&& ((cnt%2) == 1))
{
char filename[1024];
FILE *output_fd = NULL;
sprintf(filename,"srs_data_4ant_freq_%d.am",0);
output_fd = fopen(filename,"a+");
if (output_fd==NULL){
printf("Error opening1 \n");
}
if (output_fd) {
printf("log srs data, cnt %d, size(byte) %d, g_dmrs_cnt %d\n", cnt, ric_send_len,g_dmrs_cnt);
fwrite(ric_send_buf_tmp,sizeof(int16_t),ric_send_len/2,output_fd);
fclose(output_fd);
}
log_cnt++;
}
cnt++;
}
#else
struct tcp_info info; struct tcp_info info;
int len=sizeof(info); int len=sizeof(info);
getsockopt(new_fd, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&len); getsockopt(new_fd, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&len);
if((info.tcpi_state==1)) if((info.tcpi_state==1))
{ {
send_len = send(new_fd, ric_send_buf, ric_send_len, 0); send_len = send(new_fd, ric_send_buf_tmp, ric_send_len, 0);
printf ("send data %p, size %d to client. %d OK \n", ric_send_buf, ric_send_len, send_len); printf ("send data %p, size %d to client. %d OK \n", ric_send_buf, ric_send_len, send_len);
} }
else else
break; break;
#endif
} }
} }
......
...@@ -260,10 +260,12 @@ int nr_cap_srs_signal(PHY_VARS_gNB *gNB, ...@@ -260,10 +260,12 @@ int nr_cap_srs_signal(PHY_VARS_gNB *gNB,
} }
#ifdef SEND_BY_SOCKET #ifdef SEND_BY_SOCKET
ric_send_buf = ns_srs_cap; //ric_send_buf = ns_srs_cap;
ric_send_len = 40*2+273*12*ant_num*N_symb_SRS*4;//for test //ric_send_len = 40*2+273*12*ant_num*N_symb_SRS*4;//for test
ric_send_buf = ns_srs_cap->dmrsData;
ric_send_len = 273*12*ant_num*N_symb_SRS*4;//for test
sem_post(&ric_send_sem); sem_post(&ric_send_sem);
//LOG_I(PHY,"sem_post(&ric_send_sem) buf %p, size %d pos %d \n\n\n",ric_send_buf,ric_send_len, pos); LOG_I(PHY,"sem_post(&ric_send_sem) buf %p, size %d, port %d, ant %d \n\n\n",ric_send_buf,ric_send_len, ns_srs_cap->num_ant_ports, ant_num);
g_dmrs_cnt++; g_dmrs_cnt++;
#else #else
......
...@@ -882,11 +882,12 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) { ...@@ -882,11 +882,12 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
int srs_est = nr_get_srs_signal(gNB, frame_rx, slot_rx, srs_pdu, gNB->nr_srs_info[i], srs_received_signal); int srs_est = nr_get_srs_signal(gNB, frame_rx, slot_rx, srs_pdu, gNB->nr_srs_info[i], srs_received_signal);
static int log_first = 0; static int log_first = 0;
//if ((log_first == 0) && ((1<<srs_pdu->num_ant_ports)== 2)) //if ((log_first == 0) && ((1<<srs_pdu->num_ant_ports)== 2))
if (log_first == 0) if ((log_first %20 == 0) && ((1<<srs_pdu->num_ant_ports) <= 2))
{ {
nr_cap_srs_signal(gNB, frame_rx, slot_rx, srs_pdu, gNB->nr_srs_info[i]); nr_cap_srs_signal(gNB, frame_rx, slot_rx, srs_pdu, gNB->nr_srs_info[i]);
log_first++;
} }
log_first++;
if (srs_est >= 0) { if (srs_est >= 0) {
nr_srs_channel_estimation(gNB, nr_srs_channel_estimation(gNB,
frame_rx, frame_rx,
......
...@@ -56,7 +56,7 @@ int dl_rrc_message(module_id_t module_id, const f1ap_dl_rrc_message_t *dl_rrc) ...@@ -56,7 +56,7 @@ int dl_rrc_message(module_id_t module_id, const f1ap_dl_rrc_message_t *dl_rrc)
break; break;
case NR_DL_CCCH_MessageType__c1_PR_rrcReject: case NR_DL_CCCH_MessageType__c1_PR_rrcReject:
LOG_D(NR_MAC, "DL-CCCH/SRB0, received rrcReject for RNTI %04x\n", dl_rrc->rnti); LOG_D(NR_MAC, "DL-CCCH/SRB0, received rrcReject for RNTI %04x\n", dl_rrc->rnti);
AssertFatal(0, "rrcReject not implemented yet\n"); //AssertFatal(0, "rrcReject not implemented yet\n");
break; break;
case NR_DL_CCCH_MessageType__c1_PR_rrcSetup: case NR_DL_CCCH_MessageType__c1_PR_rrcSetup:
LOG_I(NR_MAC, "DL-CCCH/SRB0, received rrcSetup for RNTI %04x\n", dl_rrc->rnti); LOG_I(NR_MAC, "DL-CCCH/SRB0, received rrcSetup for RNTI %04x\n", dl_rrc->rnti);
......
...@@ -543,6 +543,7 @@ void config_srs(const NR_ServingCellConfigCommon_t *scc, ...@@ -543,6 +543,7 @@ void config_srs(const NR_ServingCellConfigCommon_t *scc,
NR_SRS_Resource_t *srs_res0=calloc(1,sizeof(*srs_res0)); NR_SRS_Resource_t *srs_res0=calloc(1,sizeof(*srs_res0));
srs_res0->srs_ResourceId = res_id; srs_res0->srs_ResourceId = res_id;
srs_res0->nrofSRS_Ports = NR_SRS_Resource__nrofSRS_Ports_port1; srs_res0->nrofSRS_Ports = NR_SRS_Resource__nrofSRS_Ports_port1;
//srs_res0->nrofSRS_Ports = NR_SRS_Resource__nrofSRS_Ports_ports2;
if (do_srs) { if (do_srs) {
long nrofSRS_Ports = 1; long nrofSRS_Ports = 1;
if (uecap && if (uecap &&
...@@ -564,7 +565,10 @@ void config_srs(const NR_ServingCellConfigCommon_t *scc, ...@@ -564,7 +565,10 @@ void config_srs(const NR_ServingCellConfigCommon_t *scc,
LOG_E(NR_RRC, "Max Number of SRS Ports Per Resource %ld is invalid!\n", LOG_E(NR_RRC, "Max Number of SRS Ports Per Resource %ld is invalid!\n",
ul_feature_setup->supportedSRS_Resources->maxNumberSRS_Ports_PerResource); ul_feature_setup->supportedSRS_Resources->maxNumberSRS_Ports_PerResource);
} }
LOG_I(NR_RRC, "change SRS configured with %d ports mimolayers %d\n", nrofSRS_Ports, maxMIMO_Layers);
nrofSRS_Ports = min(nrofSRS_Ports, maxMIMO_Layers); nrofSRS_Ports = min(nrofSRS_Ports, maxMIMO_Layers);
//nrofSRS_Ports = 2;
switch (nrofSRS_Ports) { switch (nrofSRS_Ports) {
case 1: case 1:
srs_res0->nrofSRS_Ports = NR_SRS_Resource__nrofSRS_Ports_port1; srs_res0->nrofSRS_Ports = NR_SRS_Resource__nrofSRS_Ports_port1;
......
...@@ -49,10 +49,10 @@ gNBs = ...@@ -49,10 +49,10 @@ gNBs =
# downlinkConfigCommon # downlinkConfigCommon
#frequencyInfoDL #frequencyInfoDL
# this is 3300.24 + 134*12*30e3 = 3348.48 MHz (5G NR GSCN: 7741) # this is 3300.24 + 134*12*30e3 = 3348.48 MHz (5G NR GSCN: 7741)
absoluteFrequencySSB = 623232; #652608; absoluteFrequencySSB = 623232; #623232; #652608;
dl_frequencyBand = 78; dl_frequencyBand = 78;
# this is 3300.24 MHz # this is 3300.24 MHz
dl_absoluteFrequencyPointA = 620016; #651280; dl_absoluteFrequencyPointA = 620016; #620016; #651280;
#scs-SpecificCarrierList #scs-SpecificCarrierList
dl_offstToCarrier = 0; dl_offstToCarrier = 0;
# subcarrierSpacing # subcarrierSpacing
...@@ -95,7 +95,7 @@ gNBs = ...@@ -95,7 +95,7 @@ gNBs =
prach_msg1_FDM = 0; prach_msg1_FDM = 0;
prach_msg1_FrequencyStart = 0; prach_msg1_FrequencyStart = 0;
zeroCorrelationZoneConfig = 12; zeroCorrelationZoneConfig = 12;
preambleReceivedTargetPower = -90; preambleReceivedTargetPower = -80;
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200) #preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
preambleTransMax = 6; preambleTransMax = 6;
#powerRampingStep #powerRampingStep
...@@ -125,14 +125,14 @@ gNBs = ...@@ -125,14 +125,14 @@ gNBs =
restrictedSetConfig = 0, restrictedSetConfig = 0,
msg3_DeltaPreamble = 1; msg3_DeltaPreamble = 1;
p0_NominalWithGrant =-90; p0_NominalWithGrant =-80;
# pucch-ConfigCommon setup : # pucch-ConfigCommon setup :
# pucchGroupHopping # pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping # 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping = 0; pucchGroupHopping = 0;
hoppingId = 40; hoppingId = 40;
p0_nominal = -70; p0_nominal = -80;
# ssb_PositionsInBurs_BitmapPR # ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long # 1=short, 2=medium, 3=long
ssb_PositionsInBurst_PR = 2; ssb_PositionsInBurst_PR = 2;
...@@ -238,8 +238,8 @@ MACRLCs = ( ...@@ -238,8 +238,8 @@ MACRLCs = (
num_cc = 1; num_cc = 1;
tr_s_preference = "local_L1"; tr_s_preference = "local_L1";
tr_n_preference = "local_RRC"; tr_n_preference = "local_RRC";
pusch_TargetSNRx10 = 250; pusch_TargetSNRx10 = 300;
pucch_TargetSNRx10 = 300; pucch_TargetSNRx10 = 250;
pusch_FailureThres = 1000; pusch_FailureThres = 1000;
ulsch_max_frame_inactivity = 0; ulsch_max_frame_inactivity = 0;
} }
...@@ -259,12 +259,12 @@ RUs = ( ...@@ -259,12 +259,12 @@ RUs = (
local_rf = "yes" local_rf = "yes"
nb_tx = 1; nb_tx = 1;
nb_rx = 4; nb_rx = 4;
att_tx = 85; att_tx = 89;
att_rx = 0; att_rx = 0;
bands = [78]; bands = [78];
num_tp_cores = 8; num_tp_cores = 8;
max_pdschReferenceSignalPower = -27; max_pdschReferenceSignalPower = -27;
max_rxgain = 15; max_rxgain = 55;
eNB_instances = [0]; eNB_instances = [0];
##beamforming 1x2 matrix: 1 layer x 2 antennas ##beamforming 1x2 matrix: 1 layer x 2 antennas
#bf_weights = [0x00007fff, 0x0000]; #bf_weights = [0x00007fff, 0x0000];
......
...@@ -30,7 +30,7 @@ gNBs = ...@@ -30,7 +30,7 @@ gNBs =
pdsch_AntennaPorts_XP = 2; pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2; pusch_AntennaPorts = 2;
do_CSIRS = 1; do_CSIRS = 1;
do_SRS = 1; #do_SRS = 1;
ul_prbblacklist = "135,136,137,138" ul_prbblacklist = "135,136,137,138"
pdcch_ConfigSIB1 = ( pdcch_ConfigSIB1 = (
...@@ -49,10 +49,10 @@ gNBs = ...@@ -49,10 +49,10 @@ gNBs =
# downlinkConfigCommon # downlinkConfigCommon
#frequencyInfoDL #frequencyInfoDL
# this is 3300.24 + 134*12*30e3 = 3348.48 MHz (5G NR GSCN: 7741) # this is 3300.24 + 134*12*30e3 = 3348.48 MHz (5G NR GSCN: 7741)
absoluteFrequencySSB = 623232; absoluteFrequencySSB = 623232; #652608;
dl_frequencyBand = 78; dl_frequencyBand = 78;
# this is 3300.24 MHz # this is 3300.24 MHz
dl_absoluteFrequencyPointA = 620016; dl_absoluteFrequencyPointA = 620016; #651280;
#scs-SpecificCarrierList #scs-SpecificCarrierList
dl_offstToCarrier = 0; dl_offstToCarrier = 0;
# subcarrierSpacing # subcarrierSpacing
...@@ -238,8 +238,8 @@ MACRLCs = ( ...@@ -238,8 +238,8 @@ MACRLCs = (
num_cc = 1; num_cc = 1;
tr_s_preference = "local_L1"; tr_s_preference = "local_L1";
tr_n_preference = "local_RRC"; tr_n_preference = "local_RRC";
pusch_TargetSNRx10 = 150; pusch_TargetSNRx10 = 250;
pucch_TargetSNRx10 = 200; pucch_TargetSNRx10 = 300;
pusch_FailureThres = 1000; pusch_FailureThres = 1000;
ulsch_max_frame_inactivity = 0; ulsch_max_frame_inactivity = 0;
} }
...@@ -249,7 +249,7 @@ L1s = ( ...@@ -249,7 +249,7 @@ L1s = (
{ {
num_cc = 1; num_cc = 1;
tr_n_preference = "local_mac"; tr_n_preference = "local_mac";
prach_dtx_threshold = 120; prach_dtx_threshold = 220;
pucch0_dtx_threshold = 80; pucch0_dtx_threshold = 80;
} }
); );
...@@ -262,13 +262,14 @@ RUs = ( ...@@ -262,13 +262,14 @@ RUs = (
att_tx = 85; att_tx = 85;
att_rx = 0; att_rx = 0;
bands = [78]; bands = [78];
num_tp_cores = 2;
max_pdschReferenceSignalPower = -27; max_pdschReferenceSignalPower = -27;
max_rxgain = 25; max_rxgain = 15;
eNB_instances = [0]; eNB_instances = [0];
##beamforming 1x2 matrix: 1 layer x 2 antennas ##beamforming 1x2 matrix: 1 layer x 2 antennas
#bf_weights = [0x00007fff, 0x0000]; #bf_weights = [0x00007fff, 0x0000];
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
sdr_addrs = "dev=pciex:0,auxdac1=315"; sdr_addrs = "dev=pciex:0,auxdac1=1660";
clock_src = "internal"; clock_src = "internal";
} }
......
...@@ -83,7 +83,7 @@ gNBs = ...@@ -83,7 +83,7 @@ gNBs =
prach_msg1_FDM = 0; prach_msg1_FDM = 0;
prach_msg1_FrequencyStart = 0; prach_msg1_FrequencyStart = 0;
zeroCorrelationZoneConfig = 13; zeroCorrelationZoneConfig = 13;
preambleReceivedTargetPower = -96; preambleReceivedTargetPower = -86;
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200) #preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
preambleTransMax = 6; preambleTransMax = 6;
#powerRampingStep #powerRampingStep
...@@ -113,14 +113,14 @@ gNBs = ...@@ -113,14 +113,14 @@ gNBs =
restrictedSetConfig = 0, restrictedSetConfig = 0,
msg3_DeltaPreamble = 1; msg3_DeltaPreamble = 1;
p0_NominalWithGrant =-90; p0_NominalWithGrant =-80;
# pucch-ConfigCommon setup : # pucch-ConfigCommon setup :
# pucchGroupHopping # pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping # 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping = 0; pucchGroupHopping = 0;
hoppingId = 40; hoppingId = 40;
p0_nominal = -90; p0_nominal = -80;
# ssb_PositionsInBurs_BitmapPR # ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long # 1=short, 2=medium, 3=long
ssb_PositionsInBurst_PR = 2; ssb_PositionsInBurst_PR = 2;
...@@ -193,8 +193,8 @@ MACRLCs = ( ...@@ -193,8 +193,8 @@ MACRLCs = (
num_cc = 1; num_cc = 1;
tr_s_preference = "local_L1"; tr_s_preference = "local_L1";
tr_n_preference = "local_RRC"; tr_n_preference = "local_RRC";
pusch_TargetSNRx10 = 150; pusch_TargetSNRx10 = 250;
pucch_TargetSNRx10 = 200; pucch_TargetSNRx10 = 300;
ulsch_max_frame_inactivity = 1; ulsch_max_frame_inactivity = 1;
} }
); );
...@@ -219,12 +219,12 @@ RUs = ( ...@@ -219,12 +219,12 @@ RUs = (
att_rx = 0; att_rx = 0;
bands = [78]; bands = [78];
max_pdschReferenceSignalPower = -27; max_pdschReferenceSignalPower = -27;
max_rxgain = 25; max_rxgain = 45;
sf_extension = 0; sf_extension = 0;
eNB_instances = [0]; eNB_instances = [0];
#beamforming 1x4 matrix: #beamforming 1x4 matrix:
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
sdr_addrs = "dev=pciex:0,auxdac1=340"; sdr_addrs = "dev=pciex:0,auxdac1=1660";
clock_src = "internal"; clock_src = "internal";
} }
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment