Added new parameter in FAPI Config request
[o-du/l2.git] / src / du_app / du_cfg.h
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
5 #   Licensed under the Apache License, Version 2.0 (the "License");            #
6 #   you may not use this file except in compliance with the License.           #
7 #   You may obtain a copy of the License at                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
11 #   Unless required by applicable law or agreed to in writing, software        #
12 #   distributed under the License is distributed on an "AS IS" BASIS,          #
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
14 #   See the License for the specific language governing permissions and        #
15 #   limitations under the License.                                             #
16 ################################################################################
17 *******************************************************************************/
18
19 #ifndef __DU_CONFIG_H_
20 #define __DU_CONFIG_H__
21
22 #include "stdbool.h"
23 #include "du_app_mac_inf.h"
24 #include "du_log.h"
25 #include "odu_common_codec.h"
26
27 /* MACROS */
28 #define DU_INST 0
29 #define DU_ID 1
30 #define DU_IP_V4_ADDR "192.168.130.81"
31 #define CU_IP_V4_ADDR "10.0.2.25"
32 #define RIC_IP_V4_ADDR "192.168.130.80"
33 #define DU_PORT 38472
34 #define CU_PORT 38472
35 #define RIC_PORT 36422
36 #define DU_EGTP_PORT  39001
37 #define CU_EGTP_PORT  39002
38 #define NR_PCI 1
39 #define NR_CELL_ID 1
40 #define DU_NAME "ORAN_OAM_DU"
41 #define CELL_TYPE SMALL
42 #define DUPLEX_MODE DUP_MODE_FDD
43 #define DU_TAC 1
44 #define PLMN_MCC0 3
45 #define PLMN_MCC1 1
46 #define PLMN_MCC2 1
47 #define PLMN_MNC0 4
48 #define PLMN_MNC1 8
49 #define PLMN_MNC2 0
50 #define PLMN_SIZE 3
51 #define NR_ARFCN  2079427
52 #define SUL_ARFCN 100
53 #define NR_FREQ_BAND 257
54 #define NR_FREQ_BAND_IND 78
55 #define SUL_BAND 2
56 #define TIME_CFG 0
57 #define CARRIER_IDX 1
58 #define NUM_TX_ANT 2
59 #define NUM_RX_ANT 2
60 #define FREQ_SHIFT_7P5KHZ FALSE
61 #define SSB_PBCH_PWR -5
62 #define BCH_PAYLOAD MAC_GEN_FULL_PBCH_PAYLD
63 #define TOTAL_PRB_BW 106
64 #define SUBCARRIER_SPACING 0
65 #define NORMAL_CYCLIC_PREFIX 0
66 #define SCS_CARRIER_BANDWIDTH 273         /* Subcarrier spacing- carrier bandwidth */
67 #define OFFSET_TO_POINT_A 24                     /* PRB Offset to Point A */
68 #define BETA_PSS BETA_PSS_0DB  
69 #define SSB_PERIODICITY 5
70 #define SSB_SUBCARRIER_OFFSET 0               
71 #define SSB_MULT_CARRIER_BAND FALSE
72 #define MULT_CELL_CARRIER FALSE
73 #define FREQ_LOC_BW  1099              /* DL frequency location and bandwidth */
74 #define UL_P_MAX  23
75 #define BANDWIDTH 20
76 #define DMRS_TYPE_A_POS 2
77
78 /* MACRO defines for PRACH Configuration */
79 #define PRACH_CONFIG_IDX   105
80 #define PRACH_FREQ_START   0
81 #define PRACH_SEQ_LEN SHORT_SEQUENCE
82 #define PRACH_SUBCARRIER_SPACING 1
83 #define PRACH_RESTRICTED_SET_CFG 0
84 #define NUM_PRACH_FDM 1
85 #define ROOT_SEQ_IDX 24
86 #define NUM_ROOT_SEQ 1
87 #define ZERO_CORRELATION_ZONE_CFG 6
88 #define NUM_UNUSED_ROOT_SEQ 0
89 #define UNUSED_ROOT_SEQ 1
90 #define SSB_PER_RACH 1
91 #define PRACH_MULT_CARRIER_BAND FALSE
92 #define PRACH_PREAMBLE_RCVD_TGT_PWR  -74   
93 #define NUM_RA_PREAMBLE  63
94 #define RSRP_THRESHOLD_SSB   31
95 #define TDD_PERIODICITY TX_PRDCTY_MS_2P5
96 #define RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI
97 #define RA_CONT_RES_TIMER 64
98 #define RA_RSP_WINDOW 180
99 #define PRACH_RESTRICTED_SET 0 /* Unrestricted */
100 #define ROOT_SEQ_LEN 139
101
102 /* MACRCO Ddefine for PDCCH Configuration */
103 #define PDCCH_CTRL_RSRC_SET_ZERO   13   /* Control resouce set zero */
104 #define PDCCH_SEARCH_SPACE_ZERO    0    /* Search space zero */
105 #define PDCCH_SEARCH_SPACE_ID      1    /* Common search space id */
106 #define PDCCH_CTRL_RSRC_SET_ID     0    /* Control resource set id */
107 #define PDCCH_SEARCH_SPACE_ID_SIB1 0    /* Search space id for sib1 */
108 #define PDCCH_SEARCH_SPACE_ID_PAGING 1  /* Search space id for paging */
109 #define PDCCH_SEARCH_SPACE_ID_RA   1    /* Search spaced id for random access */
110 #define PDCCH_SERACH_SPACE_DCI_FORMAT 0
111 #define PDCCH_CTRL_RSRC_SET_ONE_ID  1
112 #define PDCCH_CTRL_RSRC_SET_ONE_DURATION 2  /* Duration for control resource set id i */
113 #define PDCCH_CTRL_RSRC_SET_ONE_PRECOD_GRANULARITY 1   /* Precoded granularity */
114 #define PDCCH_SRCH_SPC_TWO_ID 2
115 #define PDCCH_SRCH_SPC_TWO_AGG_LVL1_CANDIDATE 7   /* Num of candidate at aggregation level 1 */
116 #define PDCCH_SRCH_SPC_TWO_AGG_LVL2_CANDIDATE 7   /* Num of candidate at aggregation level 2 */
117 #define PDCCH_SRCH_SPC_TWO_AGG_LVL4_CANDIDATE 4   /* Num of candidate at aggregation level 4 */
118 #define PDCCH_SRCH_SPC_TWO_AGG_LVL8_CANDIDATE 2   /* Num of candidate at aggregation level 8 */
119 #define PDCCH_SRCH_SPC_TWO_AGG_LVL16_CANDIDATE 1  /* Num of candidate at aggregation level 16 */
120 #define PDCCH_SRCH_SPC_TWO_UE_SPEC_DCI_FORMAT  0  /* format 0-0 and 1-0 */
121
122
123 #define SIB1_VALUE_TAG 10
124
125 /* MACRCO Ddefine for PDSCH Configuration */
126 #define PDSCH_K0  0
127 #define PDSCH_START_SYMBOL  2
128 #define PDSCH_LENGTH_SYMBOL 12
129 #define PDSCH_RES_ALLOC_TYPE       1          /* Resource allocation type */
130 #define PDSCH_MAX_CODEWORD_SCH_BY_DCI 0       /* Max num of codewords scheduled by DCI */
131 #define PDSCH_RBG_SIZE   0                    /* 0: config1 */
132 #define PDSCH_NUM_HARQ_PROC 5
133
134 /* MACRO Define for PUSCH Configuration */
135 #define PUSCH_K2  3
136 #define PUSCH_START_SYMBOL  0
137 #define PUSCH_LENGTH_SYMBOL 14
138
139 #define PUSCH_MSG3_DELTA_PREAMBLE 0
140 #define PUSCH_P0_NOMINAL_WITH_GRANT -70
141 #define PUSCH_TRANSFORM_PRECODER    1      /* 1: Disabled */
142 #define PUSCH_MAX_MIMO_LAYERS       1
143 #define PUSCH_PROCESS_TYPE2_ENABLED false
144
145 /* Macro define for PUCCH Configuration */
146 #define PUCCH_RSRC_COMMON  0
147 #define PUCCH_P0_NOMINAL   -74
148
149 /* MACRO defines for TDD DL-UL Configuration */
150 #define NUM_DL_SLOTS 3
151 #define NUM_DL_SYMBOLS 12
152 #define NUM_UL_SLOTS 1
153 #define NUM_UL_SYMBOLS 0
154
155 #define DU_PROC  0
156 #define DU_INST 0
157 #define DU_POOL  1
158 #define MAX_DU_PORT 2
159 #define F1_INTERFACE 0
160 #define E2_INTERFACE 1
161
162 #define SCTP_INST 0
163 #define EGTP_INST 0
164
165 /* Events */
166 #define EVTCFG 0
167
168 /* Selector */
169 #define DU_SELECTOR_LC   0
170 #define DU_SELECTOR_TC   1
171 #define DU_SELECTOR_LWLC 2
172
173 #ifdef EGTP_TEST
174 /* Macro definitions for EGTP procedures */
175 #define EGTP_LCL_TEID 1     /* EGTP local tunnel id */
176 #define EGTP_REM_TEID 10    /* EGTP remote tinnel id */
177 #endif
178
179
180 /* Macro definitions for F1 procedures */
181 #define CU_DU_NAME_LEN_MAX 30      /* Max length of CU/DU name string */
182 #define MAX_F1_CONNECTIONS 65536    /* Max num of F1 connections */
183 #define DU_MAX_CELLS       1      /* Max num of cells served by gNB-DU */
184 #define DU_MAX_UE          1      /* Maximum number of UE Ids */
185 #define MAX_PLMN           6        /* Max num of broadcast PLMN ids */
186 #define MAXNRARFCN         3279165  /* Maximum values of NRAFCN */
187 #define MAXNRCELLBANDS     2       /* Maximum number of frequency bands */
188 #define MAX_NUM_OF_SLICE_ITEMS 1024     /* Maximum number of signalled slice support items */
189 #define MAXBPLMNNRMINUS1   1       /* Maximum number of PLMN Ids broadcast in an NR cell minus 1 */
190 #define MAXNUMOFSIBTYPES   32       /* Maximum number of SIB types */
191 #define MAX_TNL_ASSOC      32       /* Max num of TNL Assoc between CU and DU */
192 #define MAXCELLINENB       256      /* Max num of cells served by eNB */
193 #define MAX_NUM_OF_UE_ID       65536    /* Max num of UEs served by DU */
194 #define MAXNUMOFUACPLMN    12       /* Maximum number of PLMN ids*/
195 #define MAXNUMOFUACPERPLMN 64       /* Maximum number of signalled categories per PLMN */
196 #define NR_RANAC           150      /* RANAC */
197 #define DEFAULT_CELLS      1        /* Max num of broadcast PLMN ids */
198
199
200 /* Macro definitions for MIB/SIB1 */
201 #define SYS_FRAME_NUM 0
202 #define SPARE 0
203 #define SSB_SC_OFFSET 8
204 #define CORESET_ZERO 1
205 #define SEARCH_SPACE_ZERO 8
206 #define DU_RANAC 1
207 #define CELL_IDENTITY 32
208
209 /* Macro definitions for DUtoCuRrcContainer */
210 #define CELL_GRP_ID 1
211 #define SCH_REQ_ID  0
212 #define SR_PROHIBIT_TMR 5
213 #define SR_TRANS_MAX 2
214 #define PERIODIC_BSR_TMR 2
215 #define RETX_BSR_TMR     5
216 #define TAG_ID 0
217 #define TIME_ALIGNMENT_TMR 7
218 #define PHR_PERIODIC_TMR 7
219 #define PHR_PROHIBHIT_TMR 0
220 #define PHR_PWR_FACTOR_CHANGE 3
221 #define PHR_MODE_OTHER_CG 0
222 #define RLC_LCID 1 
223 #define SRB_ID_1 1
224 #define SN_FIELD_LEN 0
225 #define T_POLL_RETRANSMIT 8 
226 #define POLL_PDU 0
227 #define POLL_BYTE 43
228 #define MAX_RETX_THRESHOLD 5
229 #define T_REASSEMBLY 8
230 #define T_STATUS_PROHIBHIT 7
231 #define MAC_LC_PRIORITY 1
232 #define PRIORTISIED_BIT_RATE 15
233 #define BUCKET_SIZE_DURATION 5
234 #define LC_GRP 0
235 #define P_NR_FR1 0
236 #define PDSCH_HARQ_ACK_CODEBOOK 1
237 #define SERV_CELL_IDX 0
238 #define RLM_SYNC_OUT_SYNC_THRESHOLD 0
239 #define ACTIVE_DL_BWP_ID 0
240 #define ACTIVE_UL_BWP_ID 0
241 #define SCRAMBLING_ID  NR_PCI
242 #define DMRS_ADDITIONAL_POS  0          /* DMRS Additional poistion */
243 #define RES_ALLOC_TYPE       1          /* Resource allocation type */
244
245 #ifdef EGTP_TEST
246 #define UE_ID 1
247 #define RB_ID 1
248 #define LC_ID 1
249 #endif
250
251 typedef enum
252 {
253    GNBDU,
254    GNBCU 
255 }F1Entity;
256
257 typedef enum
258 {
259    UNSPECIFIED,
260    RL_FAILURE_RLC,
261    INVALID_CU_UE_F1AP_ID,
262    INVALID_DU_UE_F1AP_ID,
263    INTERACTION_WITH_OTHER_PROC,
264    INVALID_QCI_VALUE,
265    RADIO_RELATED_REASON,
266    INSUFFICIENT_RADIO_RESOURCE,
267    PROCEDURE_CANCELLED,
268    NORMAL_RELEASE,
269    UNAVAILABLE_CELL,
270    RL_FAILURE_OTHERS,
271    UE_ACCESS_REJECTED,
272    SLICE_RESOURCE_UNAVAILABLE,
273    AMF_ABNORMAL_RELEASE,
274    INVALID_PLMN
275 }RadioNwCause;
276
277 typedef enum
278 {
279    TRANS_CAUSE_UNSPECIFIED,
280    TRANSPORT_RESOURCE_UNAVAIL
281 }TransLayerCause;
282
283 typedef enum
284 {
285    TRANSFER_SYNTAX_ERR,
286    ABSTRACT_SYNTAX_ERR_REJECT,
287    ABSTRACT_SYNTAX_ERR_NOTIFY,
288    INCOMPATIBLE_MESSAGE,
289    SEMANTIC_ERROR,
290    ABSTRACT_SYNTAX_ERR_MSG_CONSTRUCT,
291    PROTOCOL_CAUSE_UNSPECIFIED
292 }ProtocolCause;
293
294 typedef enum
295 {
296    CONTROL_PROC_OVERLOAD,
297    INSUFF_USER_PLANE_RESOURCE,
298    HARDWARE_FAILURE,
299    O_AND_M_INTERVENTION,
300    MISC_CAUSE_UNSPECIFIED
301 }MiscCause;
302
303 typedef enum
304 {
305   ALL
306 }F1ResetAll;
307
308 typedef enum 
309 {
310   IN_SERVICE,
311   OUT_OF_SERVICE
312 }SrvState;
313
314 typedef enum
315 {
316    INITIATING_MSG,
317    SUCCESSFUL_OUTCOME,
318    UNSUCCESSFUL_OUTCOME
319 }F1TriggMsgVal;
320
321 typedef enum
322 {
323    CRIT_REJECT,
324    CRIT_IGNORE,
325    CRIT_NOTIFY
326 }F1ProcCritVal;
327
328 typedef enum
329 {
330    NOT_UNDERSTOOD,
331    MISSING_IE
332 }F1ErrorType;
333
334 typedef enum
335 {
336    SCS_15,
337    SCS_30,
338    SCS_60,
339    SCS_120
340 }F1NrScs;
341
342 typedef enum
343 {
344    NRB_11,
345    NRB_18,
346    NRB_24,
347    NRB_25,
348    NRB_31,
349    NRB_32,
350    NRB_38,
351    NRB_51,
352    NRB_52,
353    NRB_65,
354    NRB_66,
355    NRB_78,
356    NRB_79,
357    NRB_93,
358    NRB_106,
359    NRB_107,
360    NRB_121,
361    NRB_132,
362    NRB_133,
363    NRB_135,
364    NRB_160,
365    NRB_162,
366    NRB_189,
367    NRB_216,
368    NRB_217,
369    NRB_245,
370    NRB_264,
371    NRB_270,
372    NRB_273
373 }F1Nrb;
374
375 typedef enum
376 {
377    VERY_SMALL,
378    SMALL,
379    MEDIUM,
380    LARGE
381 }F1CellType;
382
383 typedef enum
384 {
385    DL,
386    UL,
387    DL_UL
388 }F1CellDir;
389
390 typedef enum
391 {
392    UE_USAGE,
393    NON_UE_USAGE,
394    BOTH
395 }F1AssocUsage;
396
397 typedef enum
398 {
399    BARRED,
400    NOT_BARRED
401 }CellBarred;
402
403 typedef enum
404 {
405    OFFER,
406    EXECUTION
407 }F1ReqType;
408
409 typedef enum
410 {
411    IGNORE_YES,
412    IGNORE_NO
413 }F1IgnoreReq;
414
415 typedef enum
416 {
417    OVERLOADED,
418    NOT_OVERLOADED
419 }F1GnbDuOvrloadInfo;
420
421 typedef enum
422 {
423    REJECT_RRC_CONN_NON_EMERG_MODT,
424    REJECT_RRC_CONN_SIGNALLING,
425    PERMIT_EMERG_SESSION_AND_MOBILE_TERM_SERVICE,
426    PERMIT_HIGH_PRIOR_SESSION_AND_MOBILE_TERM_SERVICE
427 }F1UacStandardAction;
428
429 typedef enum
430 {
431    PDSCH_MAPPING_TYPE_A,
432    PDSCH_MAPPING_TYPE_B,
433 }pdschMappingType;
434
435 typedef enum
436 {
437    PUSCH_MAPPING_TYPE_A,
438    PUSCH_MAPPING_TYPE_B,
439 }puschMappingType;
440
441
442 typedef struct f1RrcVersion
443 {
444    char    rrcVer[30];     /* Latest RRC Version */
445    uint32_t   extRrcVer;  /* Latest RRC version extended */
446 }F1RrcVersion;
447
448 typedef struct f1FailCause
449 {
450    union
451    {
452       RadioNwCause      radioNwCause;     /* Radio Network Layer Cause */
453       TransLayerCause   transLayerCause;  /* Transport Layer Cause */
454       ProtocolCause     protCause;        /* Protocol Cause */
455       MiscCause         miscCause;        /* Miscellaneous Cause */
456    }cause;
457 }F1FailCause;
458
459 typedef struct f1ProcCode
460 {
461    bool   pres;
462    uint8_t     value;
463 }F1ProcCode;
464
465 typedef struct f1TriggMsg
466 {
467    bool   pres;
468    F1TriggMsgVal   value;
469 }F1TriggMsg;
470
471 typedef struct f1ProcCrit
472 {
473    bool   pres;
474    F1ProcCritVal   value;
475 }F1ProcCrit;
476
477 typedef struct f1CritDignosIE
478 {
479    F1ProcCritVal   ieCritVal;
480    uint16_t             ieId;
481    F1ErrorType       type;
482 }F1CritDignosIE;
483
484 typedef struct f1CritDiagnostic
485 {
486    bool         pres;
487    F1ProcCode   procCode;      /* Procedure Code */
488    F1TriggMsg   triggeringMsg; /* Triggering Message */
489    F1ProcCrit   procCrit;      /* Criticality of Triggering msg/proc */
490    uint32_t          transId;
491    F1CritDignosIE diagnosIE;
492 }F1CritDiagnostic;
493
494 typedef struct f1FailureIE
495 {
496    uint32_t                transId;        /* Uniquely identify transaction */
497    F1FailCause        cause;          /* Failure cause */
498    uint8_t                 timeToWait;     /* Seconds to be waited before retry */
499    F1CritDiagnostic   critDiagnostic; /* Critical diagnostics */
500 }F1FailureIE;
501
502 typedef struct f1LogicalConnUeAssoc
503 {
504    uint32_t   gnbCuUeF1apId;
505    uint32_t   gnbDuUeF1apId;
506 }F1LogicalConnUeAssoc;
507
508 typedef struct f1ResetType
509 {
510    union
511    {
512       F1ResetAll             resetAll; /* Reset All */
513       F1LogicalConnUeAssoc   ueAssocLogicalConn[MAX_F1_CONNECTIONS]; /* In case of Partial Reset : UE associated logical F1 conn list*/
514    }type;
515 }F1ResetType;
516
517 typedef struct nrEcgi
518 {
519   Plmn  plmn;
520   uint16_t     cellId;
521 }NrEcgi;
522
523 typedef struct f1SibType
524 {
525    uint8_t   sibType;
526    uint8_t   sibMsg;
527    uint8_t   value;
528 }F1SibType;
529
530 typedef struct f1TxBw
531 {
532    F1NrScs   nrScs; /* NR subcarrier spacing */
533    F1Nrb     nrb;   /* Transmission bandwidth expressed in units of RBs */
534 }F1TxBw;
535
536 typedef struct f1SulInfo
537 {
538    uint32_t      sulArfcn; /* SUL ARFCN */
539    F1TxBw   sulTxBw;  /* SUL transmission bandwidth */ 
540 }F1SulInfo;
541
542 typedef struct f1FreqBand
543 {
544   uint16_t   nrFreqBand;
545   uint16_t   sulBand[MAXNRCELLBANDS];
546 }F1FreqBand;
547
548 typedef struct f1NrFreqInfo
549 {
550    uint32_t        nrArfcn;
551    F1SulInfo  sulInfo;
552    F1FreqBand freqBand[MAXNRCELLBANDS];
553 }F1NrFreqInfo;
554
555 typedef struct f1NrFddInfo
556 {
557    F1NrFreqInfo   ulNrFreqInfo;  /* UL NR Frequency Info */
558    F1NrFreqInfo   dlNrFreqInfo;  /* DL NR Frequency Info */
559    F1TxBw         ulTxBw;        /* UL Transmission bandwidth */
560    F1TxBw         dlTxBw;        /* DL Transmission bandwidth */
561 }F1NrFddInfo;
562
563 typedef struct f1NrTddInfo
564 {
565    F1NrFreqInfo   nrFreqInfo;   /* NR Frequency Info */
566    F1TxBw       nrTxBw;       /* NR Transmission Bandwidth */
567 }F1NrTddInfo;
568
569 typedef struct f1NrModeInfo
570 {
571    union
572    {
573       F1NrFddInfo  fdd;
574       F1NrTddInfo  tdd;
575    }mode;
576 }NrModeInfo;
577
578 typedef struct f1EutraFddInfo
579 {
580    uint16_t   ulOffset;   /* UL offset to Point A */
581    uint16_t   dlOffset;   /* DL offset to Point A */
582 }F1EutraFDDInfo;
583
584 typedef struct f1EutraTddInfo
585 {
586    uint16_t   tddOffset;  /* Offset to Point A */
587 }F1EutraTDDInfo;
588
589 typedef struct f1EutraModeInfo
590 {
591    union
592    {
593       F1EutraFDDInfo  fdd;
594       F1EutraTDDInfo  tdd;
595    }mode;
596 }F1EutraModeInfo;
597
598 typedef struct f1Snsaai
599 {
600    uint8_t   sst;
601    uint32_t  sd;
602 }F1Snsaai;
603
604 typedef struct epIpAddr
605 {
606    char transportAddr[20]; /* Transport Layer Address */
607 }EpIpAddr;
608
609 typedef struct epIpAddrPort
610 {
611     EpIpAddr epIpAddr;
612     char   port[2];
613 }EpIpAddrPort;
614
615 typedef struct f1TaiSliceSuppLst
616 {
617    bool       pres;
618    F1Snsaai   snssai[MAX_NUM_OF_SLICE_ITEMS];   
619 }F1TaiSliceSuppLst;
620
621 typedef struct f1SrvdPlmn
622 {
623    Plmn              plmn;
624    F1TaiSliceSuppLst   taiSliceSuppLst;
625 }F1SrvdPlmn;
626
627 typedef struct f1BrdcstPlmnInfo
628 {
629    Plmn   plmn[MAX_PLMN];     /* PLMN id list */
630    Plmn   extPlmn[MAX_PLMN];   /* Extended PLMN id list */
631    uint16_t      tac;                     /* 5GS-TAC */
632    uint32_t      nrCellId;                /* NR Cell id */
633    uint8_t       ranac;                   /* RAN Area code */
634 }F1BrdcstPlmnInfo;
635
636 typedef struct f1CellInfo
637 {
638    NrEcgi   nrCgi;                   /* Cell global Identity */
639    uint32_t nrPci;                   /* Physical Cell Identity */
640    Plmn   plmn[MAX_PLMN];     /* Available PLMN list */
641    Plmn   extPlmn[MAX_PLMN];  /* Extended available PLMN list */
642 }F1CellInfo;
643
644 typedef struct f1DuCellInfo
645 {
646    F1CellInfo         cellInfo;     /* cell info */
647    uint16_t           tac;          /* tracking area code */
648    uint16_t           epsTac;       /* Configured EPS TAC */
649    NrModeInfo         f1Mode;       /* NR mode info : FDD/TDD */
650    uint8_t            measTimeCfg;  /* Measurement timing configuration */
651    F1CellDir          cellDir;      /* Cell Direction */
652    F1CellType         cellType;     /* Cell Type */
653    F1BrdcstPlmnInfo   brdcstPlmnInfo[MAXBPLMNNRMINUS1]; /* Broadcast PLMN Identity Info List */
654 }F1DuCellInfo;
655
656 typedef struct f1DuSysInfo
657 {
658    uint8_t   *mibMsg;   /* MIB message */
659    uint16_t  mibLen;
660    uint8_t   *sib1Msg;  /* SIB1 message */
661    uint16_t  sib1Len;
662 }F1DuSysInfo;
663
664 typedef struct f1CuSysInfo
665 {
666    F1SibType   sibTypeToUpd[MAXNUMOFSIBTYPES];   /* SIB types to be updated */
667 }F1CuSysInfo;
668
669 typedef struct f1DuSrvdCellInfo
670 {
671    F1DuCellInfo   duCellInfo;   /* gNB-DU served cell info */
672    F1DuSysInfo    duSysInfo;    /* gNB-DU System Information */
673 }F1DuSrvdCellInfo;
674
675 typedef struct f1DuSrvdCellToDel
676 {
677    NrEcgi             oldNrCgi;     /* Old NR CGI */
678    F1DuSrvdCellInfo   srvdCellInfo; /* Info of served cell to be deleted */ 
679 }F1DuSrvdCellToDel;
680
681 typedef struct f1CuActCellInfo
682 {
683    F1CellInfo    cuCellInfo;   /* gNB-CU available cell info */
684    F1CuSysInfo   cuSysInfo;    /* gNB-CU System Information */
685 }F1CuActCellInfo;
686
687 typedef struct f1ActCellFail
688 {
689    NrEcgi        nrCgi;
690    F1FailCause   cause;
691 }F1ActCellFail;
692
693 typedef struct srvStatus
694 {
695   SrvState    state;
696   bool        switchOffOngoing;
697 }SrvStatus;
698
699 typedef struct f1CellStatus
700 {
701    NrEcgi      nrEcgi;
702    SrvStatus   status;   /* Service status */
703 }F1CellStatus;
704
705 typedef struct f1DedSIDelUE
706 {
707    uint32_t      gnbCuUeF1apId;
708    NrEcgi   nrEcgi;
709 }F1DedSIDelUE;
710
711 typedef struct tnlAssocInfo
712 {
713    bool           pres;
714    EpIpAddr       epIpAddr;      /* Endpoint-IP Address */
715    EpIpAddrPort   epIpAddrport;  /* Endpoint-IP Address and Port */
716 }F1TnlAssocAddr;
717
718 typedef struct f1TnlAssocUsage
719 {
720     bool           pres;
721     F1AssocUsage   usage;
722 }F1TnlAssocUsage;
723
724 typedef struct f1TnlAssoc
725 {
726    F1TnlAssocAddr   assocInfo;    /* TNL Assoc Transport Layer Info */
727    F1TnlAssocUsage  assocUsage;   /* TNL Assoc usage */
728 }F1TnlAssoc;
729
730 typedef struct f1TnlAssocToRmv
731 {
732    F1TnlAssocAddr   assocInfoCu;   /* TNL Assoc Transport Layer Info of CU */
733    F1TnlAssocAddr   assocInfoDu;   /* TNL Assoc Transport Layer Info of DU */
734 }F1TnlAssocToRmv;
735
736 typedef struct f1TnlAssocSetupFail
737 {
738    F1TnlAssocAddr   assocInfo;
739    F1FailCause      cause;
740 }F1TnlAssocSetupFail;
741
742
743 typedef struct f1CellBarred
744 {
745    NrEcgi       nrcgi;
746    CellBarred   cellBarred;
747 }F1CellBarred;
748
749 typedef struct f1EutraCell
750 {
751    uint32_t                eutraCellId; /* EUTRA cell id */
752    F1EutraModeInfo    mode;        /* EUTRA mode info : FDD/TDD */
753    uint8_t                 rsrcInd;     /* Protected EUTRA resource Indication */
754 }F1EutraCell;
755
756 typedef struct f1ProtectEUTRARsrc
757 {
758    uint32_t           specShareGrpId;               /* Spectrum sharing group id */
759    F1EutraCell   eutraCellList[MAXCELLINENB];  /* EUTRA cells list */
760 }F1ProtectEUTRARsrc;
761
762 typedef struct f1UacOperatorDefined
763 {
764    uint8_t   accessCategory;
765    uint8_t   accessId; 
766 }F1UacOperatorDefined;
767
768 typedef struct f1UacCategoryType
769 {
770    union
771    {
772       F1UacStandardAction    action;      /* UAC standardized action */
773       F1UacOperatorDefined   operatorDef; /* UAC operator defined */
774    }type;
775 }F1UacCategoryType;
776
777 typedef struct f1UacType
778 {
779    uint8_t                  uacReducInd;     /* Value 0 means no access rate reduction. Value 100 means full access rate reduction */
780    F1UacCategoryType   uacCategoryType; /* UAC Category type */
781 }F1UacType;
782
783 /* Unified Access Class Assistance Information */
784 typedef struct f1UacAssistInfo
785 {
786    Plmn      plmn[MAXNUMOFUACPLMN];        /* UAC PLMN list */
787    F1UacType   uacType[MAXNUMOFUACPERPLMN];  /* UAC Type list */
788 }F1UacAssistInfo;
789
790 /* F1 setup related structures */
791
792 typedef struct f1SetupReq
793 {
794   uint32_t                transId;                       /* Uniquely identify transaction */
795   uint32_t                duId;                          /* DU ID */ 
796   char               duName[CU_DU_NAME_LEN_MAX];    /* DU name */
797   F1DuSrvdCellInfo   srvdCellLst[DU_MAX_CELLS];   /* Serving cell list */
798   F1RrcVersion       rrcVersion;                    /* RRC version */
799 }F1SetupReq;
800
801 typedef struct f1setupRsp
802 {
803   uint32_t               transId;                      /* Uniquely identify transaction */
804   char              cuName[CU_DU_NAME_LEN_MAX];   /* CU Name */
805   F1CuActCellInfo   actCellInfo;                  /* cells to be activated */
806   F1RrcVersion      rrcVersion;                   /* RRC version */
807 }F1SetupRsp;
808
809 typedef struct f1SetupFail
810 {
811    F1FailureIE   setupFail;
812 }F1SetupFail;
813
814 /* At reception of the RESET message the gNB-DU shall release all allocated resources on F1 
815  * and radio resources related to the UE association(s) indicated explicitly or implicitly in 
816  * the RESET message and remove the indicated UE contexts including F1AP ID. */
817 typedef struct f1Reset
818 {
819   uint32_t              transId;   /* Uniquely identify transaction */
820   F1FailCause      cause;     /* Failure cause */
821   F1ResetType      resetType; /* type of reset */
822 }F1Reset;
823
824 /* After the gNB-CU has released all assigned F1 resources and the UE F1AP IDs for all indicated
825  * UE associations which can be used for new UE-associated logical F1-connections over the F1 interface,
826  *  the gNB-CU shall respond with the RESET ACKNOWLEDGE message. */
827 typedef struct f1ResetAck
828 {
829   uint32_t                    transId;         /* Uniquely identify transaction */
830   F1LogicalConnUeAssoc   ueAssocLogicalConn[MAX_F1_CONNECTIONS]; /* UE associated logical F1-connection list */
831   F1CritDiagnostic       critDiagnostic;  /* Critical diagnostics */
832 }F1ResetAck;
833
834 typedef struct f1ErrorInd
835 {
836   uint32_t                transId;         /* Uniquely identify transaction */
837   F1Entity           errorOrigin;     /* Specifies if error is originated at DU or CU */
838   F1FailCause        cause;           /* Failure cause */
839 /* If failure is due to Ue related message. */
840   uint32_t                gnbCuUeF1apId;   /* gNB-CU UE F1AP Id */
841   uint32_t                gnbDuUeF1apId;   /* gNB-DU UE F1AP Id */
842   F1CritDiagnostic   critDiagnostic;  /* Critical diagnostics */
843 }F1ErrorInd;
844
845 typedef struct f1GnbDuCfgUpd
846 {
847   uint32_t                 transId;                             /* Uniquely identify transaction */
848   F1DuSrvdCellInfo    srvdCellLstAdd[DU_MAX_CELLS];      /* Served cell list to be added */
849   F1DuSrvdCellToDel   srvdCellLstMod[DU_MAX_CELLS];      /* Served cell list to be modified */
850   NrEcgi              srvdCellLstDel[DU_MAX_CELLS];      /* Served cell list to be deleted */
851   F1CellStatus        cellStatus[DU_MAX_CELLS];          /* Cell status */
852   F1DedSIDelUE        ueLst[DU_MAX_UE];                     /* Ue list that requires dedicated SI delivery */
853   uint32_t            gnbDuId;
854   F1TnlAssocToRmv     gnbDuTnlAssocRmv[MAX_TNL_ASSOC];  /* TNL Assoc list to remove */ 
855 }F1GnbDuCfgUpd;
856
857 typedef struct f1GnbDuCfgUpdAck
858 {
859    uint32_t           transId;                      /* Uniquely identify transaction */
860    F1CuActCellInfo    cellLstAct[DU_MAX_CELLS];    /* List of cells to be activated */   
861    F1CritDiagnostic   critDiagnostic;               /* Critical diagnostics */
862    NrEcgi             cellLstDeact[DU_MAX_CELLS]; /* List of cells to be deactivated */
863 }F1GnbDuCfgUpdAck;
864
865 typedef struct f1GnbDuCfgUpdFail
866 {
867    F1FailureIE   gnbDuCfgUpdFail;
868 }F1GnbDuCfgUpdFail;
869
870 /* Sent by the gNB-CU to transfer updated information associated to an F1-C interface instance */
871 typedef struct f1GnbCuCfgUpd
872 {
873     uint32_t            transId;                            /* Uniquely identifies transaction */
874     F1CuActCellInfo     cellLstAct[DU_MAX_CELLS];         /* List of cells to be activated */
875     NrEcgi              cellLstDeact[DU_MAX_CELLS];       /* List of cells to be deactivated */
876     F1TnlAssoc          assocLstAdd[MAX_TNL_ASSOC];     /* List of TNL assocs to be added */
877     F1TnlAssoc          assocLstUpd[MAX_TNL_ASSOC];     /* List of TNL assocs to be updated */
878     F1TnlAssocToRmv     assocLstRmv[MAX_TNL_ASSOC];     /* List of TNL assocs to be removed */
879     F1CellBarred        cellToBarList[DU_MAX_CELLS];      /* List of Cells to be barred */
880     F1ProtectEUTRARsrc  protectEutraRsrcList[MAXCELLINENB]; /* List of Protected EUTRA resources */
881 }F1GnbCuCfgUpd;
882
883 /* Sent by a gNB-DU to a gNB-CU to acknowledge update of information
884  * associated to an F1-C interface instance */
885 typedef struct f1GnbCuCfgUpdAck
886 {
887     uint32_t              transId;                              /* Uniquely identify transaction */
888     F1ActCellFail         actCellFailList[DU_MAX_CELLS];      /* Cells failed to be activated list */
889     F1CritDiagnostic      critDiagnostic;                       /* Critical diagnostics */
890     F1TnlAssocAddr        assocSetupList[MAX_TNL_ASSOC];     /* TNL Assoc Setup list */
891     F1TnlAssocSetupFail   assocSetupFailList[MAX_TNL_ASSOC]; /* TNL Assoc Setup fail list */
892     F1DedSIDelUE          dedSiDelUelist[MAX_NUM_OF_UE_ID];          /* Dedicated SI delivery needed UE list */
893 }F1GnbCuCfgUpdAck;
894
895 typedef struct f1GnbCuCfgUpdFail
896 {
897     F1FailureIE   gnbCuCfgUpdFail;
898 }F1GnbCuCfgUpdFail;
899
900 /* This procedure enables coordination of radio resource allocation between a gNB-CU and
901  * a gNB-DU. Coordination request is sent by CU to DU */
902 typedef struct f1GnbDuRsrcCoordReq
903 {
904    uint32_t      transId;              /* Uniquely identifies transaction */
905    F1ReqType     reqType;              /* Request type */
906    uint8_t       cellResCoordReqCont;  /* Container for X2AP E-UTRA - NR cell resource coordination request */
907    F1IgnoreReq   ignoreReq;            /* Ignore coordination request */
908 }F1GnbDuRsrcCoordReq;
909
910 /* This message is sent by a gNB-DU to a gNB-CU, to express the desired resource allocation
911  * for data traffic, as a response to the GNB-DU RESOURCE COORDINATION REQUEST. */
912 typedef struct f1GnbDuRsrcCoordRsp
913 {
914     uint32_t   transId;               /* Uniquely identifies transaction */
915     uint8_t    cellResCoordRspCont;   /* Container for X2AP E-UTRA - NR cell resource coordination response */
916 }F1GnbDuRsrcCoordRsp;
917
918 /* This message is sent by the gNB-DU to indicate to the gNB-CU its status of overload */
919 typedef struct f1GnbDuStatusInd
920 {
921    uint32_t                  transId;      /* Uniquely identifies transaction */
922    F1GnbDuOvrloadInfo   ovrloadInfo;  /* gNB-DU overloaded information */
923 }F1GnbDuStatusInd;
924
925 /* This message is sent by either the gNB-DU or the gNB-CU to intiate the removal
926  * of the interface instance and the related resources */
927 typedef struct f1RmvReq
928 {
929    uint32_t   transId; /* Uniquely identifies transaction */
930 }F1RmvReq;
931
932 /* This message acknowledges the initiation of removal of the interface
933  * instance and the related resources */
934 typedef struct f1RmvRsp
935 {
936    uint32_t           transId;     /* Uniquely identifies transaction */
937    F1CritDiagnostic   critDiagnos; /* Crititcality diagnostics */
938 }F1RmvRsp;
939
940 /* This message indicates that removing the interface instance and the related
941  * resources cannot be accepted */
942 typedef struct f1RmvFail
943 {
944    uint32_t           transId;         /* Uniquely identifies transaction */
945    F1FailCause        cause;          /* Failure cause */
946    F1CritDiagnostic   critDiagnostic; /* Criticality diagnostics */
947 }F1RmvFail;
948
949 /* This message is sent by the gNB-CU to indicate to the gNB-DU a need to reduce
950  * the rate at which UEs access the network. */
951 typedef struct f1NwkAccessRateRed
952 {
953    uint32_t          transId;        /* Uniquely identifies transaction */
954    F1UacAssistInfo   uacAssistInfo;  /* UAC Assistance Information */
955 }F1NwkAccessRateRed;
956
957 typedef struct f1Ipaddr
958 {
959  bool ipV4Pres;
960  uint32_t  ipV4Addr; 
961 }F1IpAddr;
962
963 typedef struct sctpParams
964 {
965    F1IpAddr  duIpAddr;
966    U16       duPort[MAX_DU_PORT];
967    F1IpAddr  cuIpAddr;
968    U16       cuPort;
969    F1IpAddr  ricIpAddr;
970    U16       ricPort;
971 }SctpParams;
972
973 typedef struct f1EgtpParams
974 {
975    F1IpAddr  localIp;      /* Ip address of local node */
976    uint16_t  localPort;    /* Sender Port at local node */
977    F1IpAddr  destIp;       /* Ip address of peer node */
978    uint16_t  destPort;     /* Sender port at peer node */
979    uint32_t  minTunnelId;
980    uint32_t  maxTunnelId;
981 }F1EgtpParams;
982
983 typedef struct schedulerCfg
984 {
985    uint8_t   numTxAntPorts;    /*!< Number of Tx antenna ports */
986    uint8_t   ulSchdType;     /*!< Indicates which UL scheduler to use, range
987                          * is 0..(number of schedulers - 1) */
988    uint8_t   dlSchdType;     /*!< Indicates which DL scheduler to use, range
989                          * is 0..(number of schedulers - 1) */
990    uint8_t   numCells;       /*!< Max number of cells */
991    uint8_t   maxUlUePerTti;  /*!< Max number of UE in UL per TTI */
992    uint8_t   maxDlUePerTti;  /*!< Max number of UE in DL per TTI */
993 }SchedulerCfg;
994
995 typedef struct mibParams
996 {
997         uint8_t sysFrmNum;
998         long    subCarrierSpacingCommon;
999         long    ssb_SubcarrierOffset;
1000         long    dmrs_TypeA_Position;
1001         long    controlResourceSetZero;
1002         long    searchSpaceZero;
1003         long    cellBarred;
1004         long    intraFreqReselection;
1005 }MibParams;
1006
1007 typedef struct siSchedInfo
1008 {
1009    long     winLen;         /* SI Window Length */
1010    long     broadcastSta;   /* Broadcast status */
1011    long     preiodicity;    /* si periodicity */
1012    long     sibType;
1013    long     sibValTag;      /* Value tag */
1014 }SiSchedInfo;
1015
1016 typedef struct pdcchCfgCommon
1017 {
1018    uint8_t  present;
1019    long     ctrlRsrcSetZero;  /* Control resource set zero */
1020    long     searchSpcZero;    /* Search space zero */
1021    long     searchSpcId;      /* Search space id */
1022    long     ctrlRsrcSetId;    /* Control resource set id */
1023    uint8_t  monitorSlotPrdAndOffPresent;
1024    long     monitorSlotPrdAndOff;     /* Monitoring slot periodicity and offset */
1025    uint8_t  monitorSymbolsInSlot[2];  /* Monitoring symbols within slot */
1026    long     numCandAggLvl1;        /* Number of candiates at aggregation level 1 */
1027    long     numCandAggLvl2;        /* Number of candiates at aggregation level 2 */
1028    long     numCandAggLvl4;        /* Number of candiates at aggregation level 4 */
1029    long     numCandAggLvl8;        /* Number of candiates at aggregation level 8 */
1030    long     numCandAggLvl16;       /* Number of candiates at aggregation level 16 */
1031    uint8_t  searchSpcType;        /*  Search Space type */
1032    uint8_t  commSrchSpcDciFrmt;    /* DCI format of common search space type */
1033    long     searchSpcSib1;         /* Id of serch space for SIB1 */
1034    long     pagingSearchSpc;       /* Id of search space for paging */
1035    long     raSearchSpc;           /* Id of search space for Random Access proc */
1036 }PdcchCfgCommon;
1037
1038 typedef struct pdschCfgCommon
1039 {
1040    uint8_t  present;
1041    long     k0;
1042    long     mapType;              /* Mapping Type */
1043         uint16_t sliv;  
1044 }PdschCfgCommon;
1045
1046 typedef struct bcchCfg
1047 {
1048    long   modPrdCoeff;          /* Modification period co-efficient */
1049 }BcchCfg;
1050
1051 typedef struct pcchCfg
1052 {
1053    long   dfltPagingCycle;      /* Default paging cycle */
1054    long   nAndPagingFrmOffPresent;
1055    long   nAndPagingFrmOff;     /* n and Paging Frame offset */
1056    long   numPagingOcc;         /* Number of paging occassions in paging frame */
1057 }PcchCfg;
1058
1059 typedef struct scsSpecCarrier
1060 {
1061     long   scsOffset;    /* Offset to point A considering subcarrier spacing */
1062     long   scs;          /* subcarrier spacing */
1063     long   scsBw;        /* Carrier bandwidth considering subcarrier spacing */
1064
1065 }ScsSpecCarrier;
1066
1067 typedef struct dlCfgCommon
1068 {
1069    long   freqBandInd;  /* Downlink frequency band indicator */
1070    long   offsetToPointA;       /* DL ofset to point A */
1071    long   locAndBw;     /* Frequency location and bandwidth */
1072    ScsSpecCarrier   dlScsCarrier;  /* SCS Specific carrier */
1073    PdcchCfgCommon   pdcchCfg;
1074    PdschCfgCommon   pdschCfg;
1075    BcchCfg          bcchCfg;
1076    PcchCfg          pcchCfg;
1077 }DlCfgCommon;
1078
1079 typedef struct rachCfgCommon
1080 {
1081    uint8_t present;
1082    long   prachCfgIdx;       /* PRACH configuration index */
1083    long   msg1Fdm;           /* Num of PRACH transmission occassions */
1084    long   msg1FreqStart;     /* Offset of lowest msg1 transmission occassion */
1085    long   zeroCorrZoneCfg;   /* Zero correlation zone configuration */
1086    long   preambleRcvdTgtPwr; /* Traget power level */
1087    long   preambleTransMax;  /* Max num of preamble transmission */
1088    long   pwrRampingStep;    /* Power ramping steps for PRACH */
1089    long   raRspWindow;       /* RA response window */
1090    long   numRaPreamble;     /* Total num of preamble used in random access */
1091    uint8_t ssbPerRachOccPresent;
1092    long   numSsbPerRachOcc;  /* Numer of SSBs per RACH Occassion */
1093    long   contResTimer;      /* Contention resolution timer */
1094    long   rsrpThreshSsb;
1095    uint8_t rootSeqIdxPresent;
1096    long   rootSeqIdx;        /* PRACH root sequence index */
1097    long   msg1Scs;           /* Msg1 subcarrier spacing */
1098    long   restrictedSetCfg;  /* Restricted set configuration */
1099 }RachCfgCommon;
1100
1101 typedef struct  puschCfgCommon
1102 {
1103    uint8_t  present;
1104    long     k2;
1105    long     mapType;
1106         uint16_t sliv;
1107    long     msg3DeltaPreamble;
1108    long     p0NominalWithGrant;
1109 }PuschCfgCommon;
1110
1111 typedef struct pucchCfgCommon
1112 {
1113    uint8_t present;
1114    long   rsrcComm;
1115    long   grpHop;
1116    long   p0Nominal;
1117 }PucchCfgCommon;
1118
1119 typedef struct ulCfgCommon
1120 {
1121    long   pMax;         /* Max UL transmission power that UE applies */
1122    long   locAndBw;     /* Frequency location and bandwidth */
1123    ScsSpecCarrier   ulScsCarrier; /* SCS Specific carrier */
1124    RachCfgCommon    rachCfg;
1125    PuschCfgCommon   puschCfg;
1126    PucchCfgCommon   pucchCfg;
1127    long   timeAlignTimerComm;
1128 }UlCfgCommon;
1129
1130 typedef struct tddUlDlCfgCommon
1131 {
1132    long   refScs;     /* Reference subcarrier spacing */
1133    long   txPrd;      /* Transmission periodicity */
1134    long   numDlSlots;
1135    long   numDlSymbols;
1136    long   numUlSlots;
1137    long   numUlSymbols;
1138 }TddUlDlCfgCommon;
1139
1140 typedef struct srvCellCfgCommSib
1141
1142    DlCfgCommon        dlCfg;
1143    UlCfgCommon        ulCfg;
1144    uint8_t            ssbPosInBurst;
1145    long               ssbPrdServingCell;
1146    TddUlDlCfgCommon   tddCfg;
1147    long               ssPbchBlockPwr;
1148 }SrvCellCfgCommSib;
1149
1150 typedef struct sib1Params
1151 {
1152         Plmn    plmn;
1153         uint8_t   tac;
1154         long      ranac;
1155         uint8_t   cellIdentity;
1156         long      cellResvdForOpUse;
1157    long      connEstFailCnt;
1158    long      connEstFailOffValidity;
1159    SiSchedInfo           siSchedInfo;
1160    SrvCellCfgCommSib     srvCellCfgCommSib;
1161 }Sib1Params;
1162
1163 typedef struct duCfgParams
1164 {
1165    SctpParams         sctpParams;                  /* SCTP Params */
1166    F1EgtpParams       egtpParams;                  /* EGTP Params */
1167    uint32_t           maxUe;
1168    uint32_t           duId;
1169    uint8_t            duName[CU_DU_NAME_LEN_MAX];
1170    SchedulerCfg       schedCfg;
1171    F1DuSrvdCellInfo   srvdCellLst[DU_MAX_CELLS];  /* Serving cell list *///TODO: this must be removed eventually
1172    F1RrcVersion       rrcVersion;                 /* RRC version */
1173    MacCellCfg          macCellCfg;                    /* MAC cell configuration */
1174    MibParams          mibParams;                  /* MIB Params */
1175    Sib1Params         sib1Params;                 /* SIB1 Params */
1176 }DuCfgParams;
1177
1178 /*function declarations */
1179 void FillSlotConfig();
1180 S16 readClCfg();
1181 S16 readCfg();
1182 S16 duReadCfg(); 
1183 S16 bitStringToInt(BIT_STRING_t *bitString, uint16_t *val);
1184 uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol);
1185
1186 #endif /* __DU_CONFIG_H__ */
1187
1188 /**********************************************************************
1189          End of file
1190 **********************************************************************/