Merge remote-tracking branch 'origin/NR_UL_scheduling' into ul_harq
This commit is contained in:
@@ -34,6 +34,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
unsigned char Ns,
|
unsigned char Ns,
|
||||||
unsigned short p,
|
unsigned short p,
|
||||||
unsigned char symbol,
|
unsigned char symbol,
|
||||||
|
int ul_id,
|
||||||
unsigned short bwp_start_subcarrier,
|
unsigned short bwp_start_subcarrier,
|
||||||
nfapi_nr_pusch_pdu_t *pusch_pdu) {
|
nfapi_nr_pusch_pdu_t *pusch_pdu) {
|
||||||
|
|
||||||
@@ -43,8 +44,8 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
unsigned int pilot_cnt,re_cnt;
|
unsigned int pilot_cnt,re_cnt;
|
||||||
int16_t ch[2],ch_r[2],ch_l[2],*pil,*rxF,*ul_ch;
|
int16_t ch[2],ch_r[2],ch_l[2],*pil,*rxF,*ul_ch;
|
||||||
int16_t *fl,*fm,*fr,*fml,*fmr,*fmm,*fdcl,*fdcr,*fdclh,*fdcrh;
|
int16_t *fl,*fm,*fr,*fml,*fmr,*fmm,*fdcl,*fdcr,*fdclh,*fdcrh;
|
||||||
int ch_offset,symbol_offset, UE_id = 0;
|
int ch_offset,symbol_offset ;
|
||||||
int32_t **ul_ch_estimates_time = gNB->pusch_vars[UE_id]->ul_ch_estimates_time;
|
int32_t **ul_ch_estimates_time = gNB->pusch_vars[ul_id]->ul_ch_estimates_time;
|
||||||
__m128i *ul_ch_128;
|
__m128i *ul_ch_128;
|
||||||
|
|
||||||
#ifdef DEBUG_CH
|
#ifdef DEBUG_CH
|
||||||
@@ -55,7 +56,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
//uint16_t Nid_cell = (eNB_offset == 0) ? gNB->frame_parms.Nid_cell : gNB->measurements.adj_cell_id[eNB_offset-1];
|
//uint16_t Nid_cell = (eNB_offset == 0) ? gNB->frame_parms.Nid_cell : gNB->measurements.adj_cell_id[eNB_offset-1];
|
||||||
|
|
||||||
uint8_t nushift;
|
uint8_t nushift;
|
||||||
int **ul_ch_estimates = gNB->pusch_vars[UE_id]->ul_ch_estimates;
|
int **ul_ch_estimates = gNB->pusch_vars[ul_id]->ul_ch_estimates;
|
||||||
int **rxdataF = gNB->common_vars.rxdataF;
|
int **rxdataF = gNB->common_vars.rxdataF;
|
||||||
|
|
||||||
nushift = (p>>1)&1;
|
nushift = (p>>1)&1;
|
||||||
@@ -338,7 +339,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
8);
|
8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef DEBUG_PDSCH
|
#ifdef DEBUG_PUSCH
|
||||||
ul_ch = (int16_t *)&ul_ch_estimates[aarx][ch_offset];
|
ul_ch = (int16_t *)&ul_ch_estimates[aarx][ch_offset];
|
||||||
for(uint16_t idxP=0; idxP<ceil((float)nb_rb_pusch*12/8); idxP++) {
|
for(uint16_t idxP=0; idxP<ceil((float)nb_rb_pusch*12/8); idxP++) {
|
||||||
for(uint8_t idxI=0; idxI<16; idxI+=2) {
|
for(uint8_t idxI=0; idxI<16; idxI+=2) {
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
unsigned char Ns,
|
unsigned char Ns,
|
||||||
unsigned short p,
|
unsigned short p,
|
||||||
unsigned char symbol,
|
unsigned char symbol,
|
||||||
|
int ul_id,
|
||||||
unsigned short bwp_start_subcarrier,
|
unsigned short bwp_start_subcarrier,
|
||||||
nfapi_nr_pusch_pdu_t *pusch_pdu);
|
nfapi_nr_pusch_pdu_t *pusch_pdu);
|
||||||
|
|
||||||
|
|||||||
@@ -1082,6 +1082,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
|
|||||||
nr_tti_rx,
|
nr_tti_rx,
|
||||||
0, // p
|
0, // p
|
||||||
symbol,
|
symbol,
|
||||||
|
ulsch_id,
|
||||||
bwp_start_subcarrier,
|
bwp_start_subcarrier,
|
||||||
rel15_ul);
|
rel15_ul);
|
||||||
stop_meas(&gNB->ulsch_channel_estimation_stats);
|
stop_meas(&gNB->ulsch_channel_estimation_stats);
|
||||||
|
|||||||
@@ -333,9 +333,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
|||||||
dlsch0_harq->pmi_alloc,
|
dlsch0_harq->pmi_alloc,
|
||||||
pdsch_vars[eNB_id_i]->pmi_ext,
|
pdsch_vars[eNB_id_i]->pmi_ext,
|
||||||
symbol,
|
symbol,
|
||||||
pilots,
|
pilots,
|
||||||
start_rb,
|
start_rb,
|
||||||
nb_rb_pdsch,
|
nb_rb_pdsch,
|
||||||
nr_tti_rx,
|
nr_tti_rx,
|
||||||
ue->high_speed_flag,
|
ue->high_speed_flag,
|
||||||
frame_parms,
|
frame_parms,
|
||||||
@@ -348,9 +348,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
|||||||
dlsch0_harq->pmi_alloc,
|
dlsch0_harq->pmi_alloc,
|
||||||
pdsch_vars[eNB_id_i]->pmi_ext,
|
pdsch_vars[eNB_id_i]->pmi_ext,
|
||||||
symbol,
|
symbol,
|
||||||
pilots,
|
pilots,
|
||||||
start_rb,
|
start_rb,
|
||||||
nb_rb_pdsch,
|
nb_rb_pdsch,
|
||||||
nr_tti_rx,
|
nr_tti_rx,
|
||||||
ue->high_speed_flag,
|
ue->high_speed_flag,
|
||||||
frame_parms,
|
frame_parms,
|
||||||
@@ -510,7 +510,7 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
|||||||
(aatx>1) ? pdsch_vars[eNB_id]->rho : NULL,
|
(aatx>1) ? pdsch_vars[eNB_id]->rho : NULL,
|
||||||
frame_parms,
|
frame_parms,
|
||||||
symbol,
|
symbol,
|
||||||
pilots,
|
pilots,
|
||||||
first_symbol_flag,
|
first_symbol_flag,
|
||||||
dlsch0_harq->Qm,
|
dlsch0_harq->Qm,
|
||||||
nb_rb,
|
nb_rb,
|
||||||
@@ -1141,7 +1141,7 @@ void nr_dlsch_channel_compensation(int **rxdataF_ext,
|
|||||||
int **rho,
|
int **rho,
|
||||||
NR_DL_FRAME_PARMS *frame_parms,
|
NR_DL_FRAME_PARMS *frame_parms,
|
||||||
unsigned char symbol,
|
unsigned char symbol,
|
||||||
uint8_t pilots,
|
uint8_t pilots,
|
||||||
uint8_t first_symbol_flag,
|
uint8_t first_symbol_flag,
|
||||||
unsigned char mod_order,
|
unsigned char mod_order,
|
||||||
unsigned short nb_rb,
|
unsigned short nb_rb,
|
||||||
|
|||||||
@@ -448,7 +448,7 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
|
|||||||
slot_offset -= ru->N_TA_offset;
|
slot_offset -= ru->N_TA_offset;
|
||||||
char name[128];
|
char name[128];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
sprintf(name, "rxdata.%d.%d.raw", frame_rx,slot_rx);
|
sprintf(name, "rxdata.%d.%d.%d.raw", ulsch->rnti,frame_rx,slot_rx);
|
||||||
f = fopen(name, "w"); if (f == NULL) exit(1);
|
f = fopen(name, "w"); if (f == NULL) exit(1);
|
||||||
fwrite(&ru->common.rxdata[0][slot_offset],2,frame_parms->get_samples_per_slot(slot_rx,frame_parms)*2, f);
|
fwrite(&ru->common.rxdata[0][slot_offset],2,frame_parms->get_samples_per_slot(slot_rx,frame_parms)*2, f);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
@@ -457,14 +457,15 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
|
|||||||
uint8_t symbol_start = ulsch_harq->ulsch_pdu.start_symbol_index;
|
uint8_t symbol_start = ulsch_harq->ulsch_pdu.start_symbol_index;
|
||||||
uint8_t symbol_end = symbol_start + ulsch_harq->ulsch_pdu.nr_of_symbols;
|
uint8_t symbol_end = symbol_start + ulsch_harq->ulsch_pdu.nr_of_symbols;
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH,1);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH,1);
|
||||||
for(uint8_t symbol = symbol_start; symbol < symbol_end; symbol++) {
|
for(uint8_t symbol = symbol_start; symbol < symbol_end; symbol++) {
|
||||||
nr_rx_pusch(gNB, ULSCH_id, frame_rx, slot_rx, symbol, harq_pid);
|
no_sig = nr_rx_pusch(gNB, ULSCH_id, frame_rx, slot_rx, symbol, harq_pid);
|
||||||
}
|
if (no_sig) return;
|
||||||
|
}
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH,0);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH,0);
|
||||||
//LOG_M("rxdataF_comp.m","rxF_comp",gNB->pusch_vars[0]->rxdataF_comp[0],6900,1,1);
|
//LOG_M("rxdataF_comp.m","rxF_comp",gNB->pusch_vars[0]->rxdataF_comp[0],6900,1,1);
|
||||||
//LOG_M("rxdataF_ext.m","rxF_ext",gNB->pusch_vars[0]->rxdataF_ext[0],6900,1,1);
|
//LOG_M("rxdataF_ext.m","rxF_ext",gNB->pusch_vars[0]->rxdataF_ext[0],6900,1,1);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX,1);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX,1);
|
||||||
nr_ulsch_procedures(gNB, frame_rx, slot_rx, ULSCH_id, harq_pid);
|
nr_ulsch_procedures(gNB, frame_rx, slot_rx, ULSCH_id, harq_pid);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX,0);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX,0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -820,7 +820,7 @@ void fill_dci_pdu_rel15(NR_ServingCellConfigCommon_t *scc,
|
|||||||
pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d] = dci_size;
|
pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d] = dci_size;
|
||||||
AssertFatal(pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d]<=64, "DCI sizes above 64 bits not yet supported");
|
AssertFatal(pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d]<=64, "DCI sizes above 64 bits not yet supported");
|
||||||
|
|
||||||
if(dci_formats[d]==NR_DL_DCI_FORMAT_1_1)
|
if(dci_formats[d]==NR_DL_DCI_FORMAT_1_1 || dci_formats[d]==NR_UL_DCI_FORMAT_0_1)
|
||||||
prepare_dci(secondaryCellGroup,&dci_pdu_rel15[d],dci_formats[d],bwp_id);
|
prepare_dci(secondaryCellGroup,&dci_pdu_rel15[d],dci_formats[d],bwp_id);
|
||||||
|
|
||||||
/// Payload generation
|
/// Payload generation
|
||||||
|
|||||||
@@ -3198,6 +3198,42 @@ uint8_t do_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
|
|||||||
ASN_SEQUENCE_ADD(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
|
ASN_SEQUENCE_ADD(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
|
||||||
&rat);
|
&rat);
|
||||||
|
|
||||||
|
/* request NR configuration */
|
||||||
|
LTE_UECapabilityEnquiry_r8_IEs_t *r8 = &dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8;
|
||||||
|
LTE_UECapabilityEnquiry_v8a0_IEs_t r8_a0;
|
||||||
|
LTE_UECapabilityEnquiry_v1180_IEs_t r11_80;
|
||||||
|
LTE_UECapabilityEnquiry_v1310_IEs_t r13_10;
|
||||||
|
LTE_UECapabilityEnquiry_v1430_IEs_t r14_30;
|
||||||
|
LTE_UECapabilityEnquiry_v1510_IEs_t r15_10;
|
||||||
|
|
||||||
|
memset(&r8_a0, 0, sizeof(r8_a0));
|
||||||
|
memset(&r11_80, 0, sizeof(r11_80));
|
||||||
|
memset(&r13_10, 0, sizeof(r13_10));
|
||||||
|
memset(&r14_30, 0, sizeof(r14_30));
|
||||||
|
memset(&r15_10, 0, sizeof(r15_10));
|
||||||
|
|
||||||
|
r8->nonCriticalExtension = &r8_a0;
|
||||||
|
r8_a0.nonCriticalExtension = &r11_80;
|
||||||
|
r11_80.nonCriticalExtension = &r13_10;
|
||||||
|
r13_10.nonCriticalExtension = &r14_30;
|
||||||
|
r14_30.nonCriticalExtension = &r15_10;
|
||||||
|
|
||||||
|
/* TODO: no hardcoded values here */
|
||||||
|
|
||||||
|
OCTET_STRING_t req_freq;
|
||||||
|
unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x02, 0x68 }; // bands 7 & nr78
|
||||||
|
//unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x08, 0x18 }; // bands 7 & nr260
|
||||||
|
|
||||||
|
//unsigned char req_freq_buf[13] = { 0x00, 0xc0, 0x18, 0x01, 0x01, 0x30, 0x4b, 0x04, 0x0e, 0x08, 0x24, 0x04, 0xd0 };
|
||||||
|
// unsigned char req_freq_buf[21] = {
|
||||||
|
//0x01, 0x60, 0x18, 0x05, 0x80, 0xc0, 0x04, 0x04, 0xc1, 0x2c, 0x10, 0x08, 0x20, 0x30, 0x40, 0xe0, 0x82, 0x40, 0x28, 0x80, 0x9a
|
||||||
|
// };
|
||||||
|
|
||||||
|
req_freq.buf = req_freq_buf;
|
||||||
|
req_freq.size = 5;
|
||||||
|
// req_freq.size = 21;
|
||||||
|
|
||||||
|
r15_10.requestedFreqBandsNR_MRDC_r15 = &req_freq;
|
||||||
if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
|
if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
|
||||||
xer_fprint(stdout, &asn_DEF_LTE_DL_DCCH_Message, (void *)&dl_dcch_msg);
|
xer_fprint(stdout, &asn_DEF_LTE_DL_DCCH_Message, (void *)&dl_dcch_msg);
|
||||||
}
|
}
|
||||||
@@ -3276,17 +3312,17 @@ uint8_t do_NR_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
|
|||||||
/* TODO: no hardcoded values here */
|
/* TODO: no hardcoded values here */
|
||||||
|
|
||||||
OCTET_STRING_t req_freq;
|
OCTET_STRING_t req_freq;
|
||||||
//unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x02, 0x68 }; // bands 7 & nr78
|
unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x02, 0x68 }; // bands 7 & nr78
|
||||||
//unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x08, 0x18 }; // bands 7 & nr260
|
//unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x08, 0x18 }; // bands 7 & nr260
|
||||||
|
|
||||||
//unsigned char req_freq_buf[13] = { 0x00, 0xc0, 0x18, 0x01, 0x01, 0x30, 0x4b, 0x04, 0x0e, 0x08, 0x24, 0x04, 0xd0 };
|
//unsigned char req_freq_buf[13] = { 0x00, 0xc0, 0x18, 0x01, 0x01, 0x30, 0x4b, 0x04, 0x0e, 0x08, 0x24, 0x04, 0xd0 };
|
||||||
unsigned char req_freq_buf[21] = {
|
// unsigned char req_freq_buf[21] = {
|
||||||
0x01, 0x60, 0x18, 0x05, 0x80, 0xc0, 0x04, 0x04, 0xc1, 0x2c, 0x10, 0x08, 0x20, 0x30, 0x40, 0xe0, 0x82, 0x40, 0x28, 0x80, 0x9a
|
//0x01, 0x60, 0x18, 0x05, 0x80, 0xc0, 0x04, 0x04, 0xc1, 0x2c, 0x10, 0x08, 0x20, 0x30, 0x40, 0xe0, 0x82, 0x40, 0x28, 0x80, 0x9a
|
||||||
};
|
// };
|
||||||
|
|
||||||
req_freq.buf = req_freq_buf;
|
req_freq.buf = req_freq_buf;
|
||||||
req_freq.size = 5;
|
req_freq.size = 5;
|
||||||
req_freq.size = 21;
|
// req_freq.size = 21;
|
||||||
|
|
||||||
r15_10.requestedFreqBandsNR_MRDC_r15 = &req_freq;
|
r15_10.requestedFreqBandsNR_MRDC_r15 = &req_freq;
|
||||||
|
|
||||||
|
|||||||
@@ -917,7 +917,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|||||||
srs_res0->resourceMapping.repetitionFactor=NR_SRS_Resource__resourceMapping__repetitionFactor_n1;
|
srs_res0->resourceMapping.repetitionFactor=NR_SRS_Resource__resourceMapping__repetitionFactor_n1;
|
||||||
srs_res0->freqDomainPosition=0;
|
srs_res0->freqDomainPosition=0;
|
||||||
srs_res0->freqDomainShift=0;
|
srs_res0->freqDomainShift=0;
|
||||||
srs_res0->freqHopping.c_SRS = 61;
|
srs_res0->freqHopping.c_SRS = 0;
|
||||||
srs_res0->freqHopping.b_SRS=0;
|
srs_res0->freqHopping.b_SRS=0;
|
||||||
srs_res0->freqHopping.b_hop=0;
|
srs_res0->freqHopping.b_hop=0;
|
||||||
srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
|
srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ MACRLCs = (
|
|||||||
|
|
||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLITaaaaaa";
|
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
||||||
worker_config = "ENABLE";
|
worker_config = "ENABLE";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -132,12 +132,12 @@ gNBs =
|
|||||||
# pusch-ConfigCommon (up to 16 elements)
|
# pusch-ConfigCommon (up to 16 elements)
|
||||||
initialULBWPk2_0 = 2;
|
initialULBWPk2_0 = 2;
|
||||||
initialULBWPmappingType_0 = 1
|
initialULBWPmappingType_0 = 1
|
||||||
# this is SS=0 L=11
|
# this is SS=0 L=12
|
||||||
initialULBWPstartSymbolAndLength_0 = 55;
|
initialULBWPstartSymbolAndLength_0 = 55;
|
||||||
|
|
||||||
initialULBWPk2_1 = 2;
|
initialULBWPk2_1 = 2;
|
||||||
initialULBWPmappingType_1 = 1;
|
initialULBWPmappingType_1 = 1;
|
||||||
# this is SS=0 L=12
|
# this is SS=0 L=11
|
||||||
initialULBWPstartSymbolAndLength_1 = 69;
|
initialULBWPstartSymbolAndLength_1 = 69;
|
||||||
|
|
||||||
initialULBWPk2_2 = 7;
|
initialULBWPk2_2 = 7;
|
||||||
@@ -266,8 +266,8 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
//parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
||||||
parallel_config = "PARALLEL_SINGLE_THREAD";
|
//parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user