void dci_msg_type_fprint(FILE *f, dci_msg_type_t type) { switch (type.type) { case PUSCH_SCHED: fprintf(f, "%s PUSCH Scheduling\n", dci_format_string(type.format)); break; case PDSCH_SCHED: fprintf(f, "%s PDSCH Scheduling\n", dci_format_string(type.format)); break; case RA_PROC_PDCCH: fprintf(f, "%s Random access initiated by PDCCH\n", dci_format_string(type.format)); break; case MCCH_CHANGE: fprintf(f, "%s MCCH change notification\n", dci_format_string(type.format)); break; case TPC_COMMAND: fprintf(f, "%s TPC command\n", dci_format_string(type.format)); break; } }
void usage(char *prog) { printf("Usage: %s [vcfoe] -i input_file\n", prog); printf("\t-c cell.id [Default %d]\n", cell.id); printf("\t-f cfi [Default %d]\n", cfi); printf("\t-o DCI Format [Default %s]\n", dci_format_string(dci_format)); printf("\t-r rnti [Default SI-RNTI]\n"); printf("\t-p cell.nof_ports [Default %d]\n", cell.nof_ports); printf("\t-n cell.nof_prb [Default %d]\n", cell.nof_prb); printf("\t-m max_frames [Default %d]\n", max_frames); printf("\t-e Set extended prefix [Default Normal]\n"); printf("\t-v [set verbose to debug, default none]\n"); }
int dci_msg_pack_pdsch(ra_pdsch_t *data, dci_msg_t *msg, dci_format_t format, int nof_prb, bool crc_is_crnti) { switch (format) { case Format1: return dci_format1_pack(data, msg, nof_prb); case Format1A: return dci_format1As_pack(data, msg, nof_prb, crc_is_crnti); case Format1C: return dci_format1Cs_pack(data, msg, nof_prb); default: fprintf(stderr, "Invalid DCI format %s for PDSCH resource allocation\n", dci_format_string(format)); return -1; } }