1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
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 #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
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 *******************************************************************************/
19 /********************************************************************20**
21 Name: LTE PDCP Interface
25 Desc: This file contains the Data structures for LTE PDCP Interface
29 *********************************************************************21*/
35 #endif /*for extern "C"*/
39 * @brief CPJ Interface file
42 /*************************************************************************
44 ************************************************************************/
47 * Cipher Key type information.
49 typedef U8 CpjCipherKey;
53 * Integrity Key type information.
55 typedef U8 CpjIntegrityKey;
59 * RLC Parameter Information in AM mode.
61 typedef struct cpjRlcAm
63 Bool statusRepReqd; /*!< Status report required */
64 U8 pdcpSNSize; /*!< Length of PDCP sequence number */
69 * RLC Parameter Information in UM mode.
71 typedef struct cpjRlcUm
73 U8 pdcpSNSize; /*!< Length of PDCP sequence number */
78 * Mapped RLC Entity Information in RLC for the PDCP Entity
80 typedef struct cpjRlcInfo
82 U8 dir; /*!< UPLINK/DOWNLINK/BOTH */
83 U8 mode; /*!< RLC Mode */
86 CpjRlcAm rlcAm; /*!< RLC in AM mode */
87 CpjRlcUm rlcUm; /*!< RLC in UM mode */
94 * Ciphering Information to be configured per UE in PDCP.
96 typedef struct cpjCipherInfo
98 CpjCipherKey ctrlplnKey[CPJ_CIPHER_KEY_LEN]; /*!< Control plane
100 CpjCipherKey usrplnKey[CPJ_CIPHER_KEY_LEN]; /*!< User plane
102 U8 algoType; /*!< Algorithm type.
105 -# CPJ_SEC_ALG_SNOW3G
112 * Integrity protection paramater information.
114 typedef struct cpjIntegInfo
116 U8 algoType; /*!< Algorithm type.
119 -# CPJ_SEC_ALG_SNOW3G
121 CpjIntegrityKey intKey[CPJ_INTG_KEY_LEN]; /*!< Integrity key */
126 * PDCP Security configuration parameter.
128 typedef struct cpjSecCfg
130 Bool selSecAct; /*!< Selective security activation flag.
132 PDCP applies only Integrity algorithm for the first UL and first DL
133 messages (security activation procedure), applies both Integrity and
134 ciphering for all the other messages (including handover which involves
135 reconfiguration messages). selSecAct enables to identify whether
136 PDCP needs to selectively apply only Integrity for first UL/DL message.
139 CpjIntegInfo integInfo; /*!< Integrity configuration */
140 CpjCipherInfo cipherInfo; /*!< Ciphering configuration */
145 * ROHC Compression protocol information structure.
147 typedef struct cpjRohcInfo
149 U16 maxCid; /*!< Maximum CID */
150 Bool profLst[CPJ_MAX_ROHC_PROF_LIST]; /*!< ROHC profile
156 * ROHC Configuration information for PDCP entity.
158 typedef struct cpjHdrCompCfg
160 Bool hdrCompUsed; /*!< Header Compression Used/Not */
161 CpjRohcInfo rohcInfo; /*!< ROHC configuration information */
166 * Handover Information for RB.
168 typedef struct cpjHoInfo
170 U8 isHoPres; /*!< Last 2bits (from LSB)is used to convey handover information is present or
171 not. @n Allowed values are:
172 -# CPJ_HO_NOT_PRSNT 00
176 U8 snLen; /*!< PDCP SN len 12/15 bit */
177 U32 dlCount; /*!< DL COUNT to assign for new SDUs */
178 U32 ulCount; /*!< UL First Missing SN */
179 U16 numBits; /*!< Number of bits in UL bitmap */
180 U8 *ulBitMap; /*!< UL SN bitmap excluding FMS to be used
186 * Configuraiton Structure to add an RB.
188 typedef struct cpjAddCfgEnt
190 Bool discReqd; /*!< Discard required/not for PDUs
191 with Integrity Verification failure */
192 Bool cfmReqd; /*!< Confirm required/not for SDUs
193 received by the peer PDCP entity. */
194 /* cpj_x_001.main_3 added support for L2 Measurement */
196 U8 qci; /*!< qCI value Associated with that RB */
197 #endif /* LTE_L2_MEAS */
199 CpjRlcInfo rlcInfo; /*!< Corresponding RLC entity information. */
200 S16 discardTmr; /*!< Discard timer. @n The value for this parameter
201 is expected in milli seconds. @n Value of infinity
202 is also allowed and -1 must be passed for
204 U16 reOrdrTmrVal; /*!< t-Reorder Timer value in milli sec */
205 CpjHdrCompCfg hdrCompCfg; /*!< PDCP compression information */
210 * Configuraiton Structure to modify an RB.
212 typedef struct cpjModCfgEnt
215 U8 bitFlag; /*!< List of Modified Elements
216 Each bit respresents one element */
218 Bool discReqd; /*!< Discard required/not for PDUs
219 with Integrity Verification failure.
221 Bool cfmReqd; /*!< Confirm required/not for SDUs
222 received by the peer PDCP entity.
224 CpjHdrCompCfg hdrCompCfg; /*!< PDCP compression information */
225 CpjHoInfo hoInfo; /*!< Handover Information */
226 U16 reOrdrTmrVal; /*!< t-Reorder Timer value */
232 * Configuration structure for PDCP entity.
234 typedef struct cpjCfgEnt
236 U8 rbId; /*!< PDCP ID. */
237 U8 cfgType; /*!< Configuration request type -
242 -# CPJ_CFG_DELETE_UE */
243 U8 rbType; /*!< RB type.
248 CpjAddCfgEnt addCfg; /*!< Configuration parameters for
249 cfgType CPJ_CFG_ADD */
250 CpjModCfgEnt modCfg; /*!< Configuration parameters for
251 cfgType CPJ_CFG_MODIFY */
259 * PDCP Configuration structure. Parameters are filled by RRC
260 layer while configuring the PDCP layer.
262 typedef struct cpjCfgReqInfo
264 CmLteRnti ueId; /*!< UE ID */
265 CmLteCellId cellId; /*!< Cell ID */
266 U32 transId; /*!< Transaction ID */
267 U8 numEnt; /*!< Number of entities to be
268 configured in the Config request.*/
270 #ifdef TENB_MULT_CELL_SUPPRT
274 CpjCfgEnt cfgEnt[CPJ_MAX_CFG]; /*!< Config paramater for
280 * PDCP Confirm parameter structure for PDCP entity.
282 typedef struct cpjCfmEnt
284 U8 rbId; /*!< RB ID */
285 U8 rbType; /*!< RB Type */
286 Status status; /*!< ROK or RFAILED */
287 Reason reason; /*!< Reason for failure */
292 * PDCP Configuration Confirm structure.
294 typedef struct cpjCfgCfmInfo
296 CmLteRnti ueId; /*!< UE ID */
297 CmLteCellId cellId; /*!< Cell ID */
298 U32 transId; /*!< Transcation ID */
299 U8 numEnt; /*!< Number of entities */
300 CpjCfmEnt cfmEnt[CPJ_MAX_CFM]; /*!< Confirm parameter for
306 * Re-estabishment Request structure for SRB1 of an UE.
308 typedef struct cpjReEstReqInfo
310 CmLtePdcpId pdcpId; /*!< PDCP ID */
311 U32 transId; /*!< Transcation ID */
312 U8 intKey[CPJ_INTG_KEY_LEN]; /*!< Integrity key */
313 CpjCipherKey ctrlplnKey[CPJ_CIPHER_KEY_LEN]; /*!< Control plane
315 CpjCipherKey usrplnKey[CPJ_CIPHER_KEY_LEN]; /*!< User plane
321 * Data Forwarding Request structure
323 typedef struct cpjDataFwdReqInfo
325 CmLteRnti ueId; /*!< UE ID */
326 CmLteCellId cellId; /*!< Cell ID */
327 U32 transId; /*!< Transcation ID */
328 Bool isUlDatFwdReq; /*!< UL Data Fwd reqd or not */
334 * Data Resume Request structure
336 typedef struct cpjDatResumeReqInfo
338 CmLteRnti ueId; /*!< UE ID */
339 CmLteCellId cellId; /*!< Cell ID */
340 U32 transId; /*!< Transcation ID */
341 }CpjDatResumeReqInfo;
344 * Re-establishment Confirmation structure for an UE.
346 typedef struct cpjReEstCfmInfo
348 CmLteRnti ueId; /*!< UE ID */
349 CmLteCellId cellId; /*!< Cell ID */
350 U32 transId; /*!< Transcation ID */
351 Status status; /*!< Status of reestablishment.
360 * PDCP Security Configuration structure. Parameters are filled by RRC
361 * while configuring the security parameters.
363 typedef struct cpjSecCfgReqInfo
365 CmLteRnti ueId; /*!< UE ID */
366 CmLteCellId cellId; /*!< Cell ID */
367 U32 transId; /*!< Transcation ID */
368 CpjSecCfg secCfg; /*!< Configuration paramater for PDCP entity */
373 * PDCP Security Configuration confirm structure.
375 typedef struct cpjSecCfgCfmInfo
377 CmLteRnti ueId; /*!< UE ID */
378 CmLteCellId cellId; /*!< Cell ID */
379 U32 transId; /*!< Transcation ID */
380 Status status; /*!< ROK or RFAILED */
381 Reason reason; /*!< Reason for failure */
388 typedef struct cpjUeInfo
390 CmLteCellId cellId; /*!< Cell ID */
391 CmLteRnti ueId; /*!< UE ID */
396 * PDCP Count Request Information from RRC.
398 typedef struct cpjCountReqInfo
400 CmLteRnti ueId; /*!< UE ID */
401 CmLteCellId cellId; /*!< Cell ID */
402 U32 transId; /*!< Transaction ID */
407 * PDCP Count Information for a DRB.
409 typedef struct cpjCountInfo
411 U8 rbId; /*!< RB ID */
412 U8 dir; /*!< Direction of the RB */
413 U32 ulCount; /*!< UL Count value */
414 U32 dlCount; /*!< DL Count value */
418 * PDCP Count Request Confirmation to RRC.
420 typedef struct cpjCountCfmInfo
422 CmLteRnti ueId; /*!< UE ID */
423 CmLteCellId cellId; /*!< Cell ID */
424 U32 transId; /*!< Transaction ID */
425 U8 numRb; /*!< Number of DRBs */
426 CpjCountInfo countInfo[CPJ_MAX_DRB]; /*!< CountInfo of DRBs */
427 Status status; /*!< ROK or RFAILED */
428 Reason reason; /*!< Reason for failure */
433 * PDCP SDU Status Request Information from RRC - Used for reestablishment
436 typedef struct cpjSduStaReqInfo
438 CmLteRnti ueId; /*!< UE ID */
439 CmLteCellId cellId; /*!< Cell ID */
440 U32 transId; /*!< Transaction ID */
445 * PDCP UL SDU Status Information for a DRB mapped to RLC AM.
447 typedef struct cpjUlSduStaInfo
449 U16 numBits; /*!< Number of bits in UL bitmap */
450 U8 *ulBitMap; /*!< Status Report of PDUs recieved during
452 The MSB of the first octet of the type "Bitmap"
453 indicates whether or not the PDCP SDU with the
454 SN (FMS + 1) modulo 4096 is received. @n
455 The LSB of the first octet of the type "Bitmap"
456 indicates whether or not the PDCP SDU with the
457 SN (FMS + 8) modulo 4096 has been received
460 U32 count; /*!< UL Count value with First Missing
466 * PDCP DL SDU Status Information for a DRB mapped to RLC AM.
468 typedef struct cpjDlSduStaInfo
470 U32 count; /*!< Count with the next SN to be assigned
476 * PDCP SDU Status Information for a DRB mapped to RLC AM.
478 typedef struct cpjSduStaInfo
480 U8 rbId; /*!< RB ID */
481 U8 dir; /*!< Direction of the RB */
482 U8 snLen; /*!< PDCP-SN length 12/15 bits */
483 CpjUlSduStaInfo ulSduStaInfo; /*!< SDU Status Info for UL */
484 CpjDlSduStaInfo dlSduStaInfo; /*!< SDU Status Info for DL */
489 * PDCP SDU Status Request Confirmation for an UE.
491 typedef struct cpjSduStaCfmInfo
493 CmLteRnti ueId; /*!< UE ID */
494 CmLteCellId cellId; /*!< Cell ID */
495 U32 transId; /*!< Transaction ID */
496 U8 numRb; /*!< Number of RBs */
497 CpjSduStaInfo sduStaInfo[CPJ_MAX_DRB]; /*!< SDU Status Info of DRBs mapped
499 Status status; /*!< ROK or RFAILED */
500 Reason reason; /*!< Reason for Failure */
505 * PDCP Data Resume Request Confirmation for an UE.
507 typedef struct cpjDatResumeCfmInfo
509 CmLteRnti ueId; /*!< UE ID */
510 CmLteCellId cellId; /*!< Cell ID */
511 U32 transId; /*!< Transaction ID */
512 Status status; /*!< ROK or RFAILED */
513 Reason reason; /*!< Reason for Failure */
514 } CpjDatResumeCfmInfo;
515 /********************************************************************************************************************************/
516 /*START OF KEY DERIVATION FUNTION (KDF) REQUEST STRUCTURES*/
517 /********************************************************************************************************************************/
519 /*AS key generation input information structure*/
520 typedef struct cpjAsKeyInfo{
521 U8 intgAlgoType; /*!SNOW3g or AES, used in key
522 derivation as well */
523 U8 ciphAlgoType; /*!SNOW3g or AES, used in key
524 derivation as well */
525 U8 secKey[CPJ_SEC_KEY_LEN]; /*!< eNodeB key received in initial
529 /*Horizontal keNB derivation input information structure*/
530 typedef struct cpjKenbStarInfo{
531 U16 dlCarrFreq; /*!< DL UARFCN*/
532 U16 physCellId; /*!< Physical cell ID*/
533 U8 secKey[CPJ_SEC_KEY_LEN]; /*!< Current eNodeB key at App used to
534 derive keNB*. Horizontal KD */
537 /*Vertical keNB derivation input information structure*/
538 typedef struct cpjNhKeyInfo{
539 U16 dlCarrFreq; /*!< DL UARFCN*/
540 U16 physCellId; /*!< Physical cell ID*/
541 U8 secKey[CPJ_SEC_KEY_LEN]; /*!< NH key provided by MME used to
542 derive keNB*. Vertical KD */
545 typedef struct cpjKdfReqInfo {
546 U8 keyDerType; /*!< Keyderivation type: for AS security
547 keys/keNB* from keNB/keNB*
551 CpjAsKeyInfo kEnbInf; /*!< eNodeB key for for deriving AS
553 CpjKenbStarInfo kEnbStarInf; /*!< eNodeB key for for deriving eNodeB*
554 Key (Horizontal key derivation ref:
556 CpjNhKeyInfo nhKeyInf; /*!< NH key for for deriving eNodeB* Key
557 (Verticall key derivation ref:
563 @brief Transaction ID between CPJ and User. */
564 typedef struct cpjCfgTransId {
565 U8 trans[CPJ_CFG_TRANSID_SIZE]; /*!< User transaction ID */
569 /********************************************************************************************************************************/
570 /*END OF REQUEST STRUCTURES*/
571 /********************************************************************************************************************************/
574 /********************************************************************************************************************************/
575 /*START OF KEY DERIVATION FUNTION (KDF) CONFIRM STRUCTURES*/
576 /********************************************************************************************************************************/
578 /*AS key generation output information structure*/
579 typedef struct cpjAskeyCfmInfo{
580 U8 intKey[CPJ_SEC_KEY_LEN]; /*!< eNodeB key received in initial
582 U8 upCiphKey[CPJ_SEC_KEY_LEN]; /*!< eNodeB key received in initial
584 U8 cpCiphKey[CPJ_SEC_KEY_LEN]; /*!< eNodeB key received in initial
588 /*Horizontal keNB derivation output information structure*/
589 typedef struct cpjKenbStarCfmInfo{
590 U8 secKey[CPJ_SEC_KEY_LEN]; /*!< Current eNodeB key at App used
591 to derive keNB*. Horizontal KD */
594 /*Vertical keNB derivation output information structure*/
595 typedef struct cpjNhKeyCfmInfo{
596 U8 secKey[CPJ_SEC_KEY_LEN]; /*!< NH key provided by MME used to
597 derive keNB*. Vertical KD */
600 typedef struct cpjKdfCfmInfo {
601 U8 keyDerType; /*!< Keyderivation type: for AS
602 security keys/keNB* from
603 keNB/keNB* from NH key */
606 CpjAskeyCfmInfo kEnbInf; /*!< AS security keys */
607 CpjKenbStarCfmInfo kEnbStarInf; /*!< eNodeB* Key (Horizontal key
608 derivation ref: ts 33.401) */
609 CpjNhKeyCfmInfo nhKeyInf; /*!< eNodeB* Key (Verticall key
610 derivation ref: ts 33.401) */
614 /*************************************************************************
616 ************************************************************************/
618 /*************************************************************************
619 * Start of Pointer Interface primitives
620 ************************************************************************/
621 typedef S16 (*CpjBndReq) ARGS((Pst *pst, SuId suId, SpId spId));
622 typedef S16 (*CpjBndCfm) ARGS((Pst *pst, SuId suId, U8 status));
623 typedef S16 (*CpjUbndReq) ARGS((Pst *pst, SpId spId, Reason reason));
624 typedef S16 (*CpjCfgReq) ARGS((Pst *pst, SpId spId, CpjCfgReqInfo *cfgReq));
625 typedef S16 (*CpjCfgCfm) ARGS((Pst *pst, SuId suId, CpjCfgCfmInfo *cfgCfm));
626 typedef S16 (*CpjReEstReq) ARGS((Pst *pst, SpId spId, CpjReEstReqInfo *reEstReq));
627 typedef S16 (*CpjReEstCfm) ARGS((Pst *pst, SuId suId, CpjReEstCfmInfo *reEstCfm));
628 typedef S16 (*CpjSecCfgReq) ARGS((Pst *pst, SpId spId, CpjSecCfgReqInfo *secCfgReq));
629 typedef S16 (*CpjSecCfgCfm) ARGS((Pst *pst, SuId suId, CpjSecCfgCfmInfo *secCfgCfm));
630 typedef S16 (*CpjUeIdChgReq) ARGS((Pst *pst, SpId spId, U32 transId,
631 CpjUeInfo *oldUeInfo,
632 CpjUeInfo *newUeInfo));
633 typedef S16 (*CpjUeIdChgCfm) ARGS((Pst *pst, SuId suId, U32 transId,
634 CpjUeInfo *ueInfo, CmStatus status));
635 typedef S16 (*CpjCountReq) ARGS((Pst *pst, SpId spId, CpjCountReqInfo *countReq));
636 typedef S16 (*CpjCountCfm) ARGS((Pst *pst, SuId suId, CpjCountCfmInfo *countCfm));
637 typedef S16 (*CpjSduStaReq) ARGS((Pst *pst, SpId spId, CpjSduStaReqInfo *staReq));
638 typedef S16 (*CpjSduStaCfm) ARGS((Pst *pst, SuId suId, CpjSduStaCfmInfo *staCfm));
639 typedef S16 (*CpjDataFwdReq) ARGS((Pst *pst, SpId spId, CpjDataFwdReqInfo *dataFwdReq));
640 typedef S16 (*CpjDatResumeReq) ARGS((Pst *pst, SpId spId, CpjDatResumeReqInfo
642 typedef S16 (*CpjDatResumeCfm) ARGS((Pst *pst, SuId suId, CpjDatResumeCfmInfo *dataResCfm));
643 typedef S16 (*CpjKdfReq) ARGS((
646 CpjCfgTransId transId,
647 CpjKdfReqInfo* cfgReqInfo));
649 /* Configuration Confirm from PHY to User. */
650 typedef S16 (*CpjKdfCfm) ARGS((
653 CpjCfgTransId transId,
654 CpjKdfCfmInfo* kdfCfmInfo,
658 /*************************************************************************
659 * End of Pointer Interface primitives
660 ************************************************************************/
661 /* cpj_x_001.main_2 */
662 /*************************************************************************
663 * Start of Extern Interface Declarations
664 ************************************************************************/
666 * @brief Bind request primitive
668 * The function binds the PDCP service user entity (RRC) to the PDCP product.
669 * PDCP acknowledges the receipt of the bind request by sending a PjUiCpjBndCfm
672 * @param[in] pst - Pointer to the post structure.
673 * @param[in] suId - Service user ID. This is the reference number used by
674 * PDCP service user to identify its SAP. This reference number is
675 * provided by PDCP in any further primitives sent by PDCP to the service user.
676 * @param[in] spId - Service provider ID. This is the reference number used
677 * by PDCP service user to identify its SAP. This reference number is
678 * provided by PDCP in any further primitives sent by PDCP to the service user.
682 EXTERN S16 PjUiCpjBndReq ARGS((Pst *pst, SuId suId, SpId spId));
685 * @brief Bind confirmation primitive
687 * PDCP invokes the bind confirm primitive to acknowledge the receipt of
688 * the PjUiCpjBndReq primitive from the RRC layer. The status field indicates
689 * whether the bind request succeeded or failed. The bind request may fail due
690 * to invalid parameters in the bind request from the service user
691 * (for example, an invalid spId).
693 * @param[in] pst - Pointer to the pst structure.
694 * @param[in] suId - Service user ID. This is the reference number used
695 * by PDCP service user (RRC layer) to identify its SAP.
696 * @param[in] status - Status field indicates whether the bind request
697 * succeeded or failed.
698 * -# TRUE, for successful bind.
699 * -# FALSE, otherwise.
703 EXTERN S16 PjUiCpjBndCfm ARGS((Pst *pst, SuId suId, U8 status));
706 * @brief Unbind request primitive
708 * The PDCP service user (RRC) initiates this primitive for performing
709 * an unbind operation. This function brings the link between RRC and PDCP
710 * down if it is already up, and releases all the resources associated for
713 * @param[in] pst - Pointer to the post structure.
714 * @param[in] spId - Service provider ID. This is the reference number used
715 * by PDCP to identify its SAP.
716 * @param[in] reason - Unbind reason. Not used in the current implementation.
720 EXTERN S16 PjUiCpjUbndReq ARGS((Pst *pst, SpId spId, Reason reason));
723 * @brief Configuration request primitive
725 * RRC uses this primitive to configure PDCP system parameters. The
726 * various parameters are configured by RRC. In one configuration request,
727 * multiple PDCP entities can be configured based on the rbId.
728 * For PDCP on target eNB, RRC can configure the handover information.
730 * @param[in] pst - Pointer to post structure.
731 * @param[in] spId - Service provider ID. This is the reference number used
732 * by PDCP to identify its SAP.
733 * @param[in] pdcpCfg - PDCP configuration structure.
737 EXTERN S16 PjUiCpjCfgReq ARGS((Pst *pst, SpId spId, CpjCfgReqInfo *cfgReq));
740 * @brief Configuration confirmation primitive
742 * This primitive is invoked by PDCP to inform to PDCP User (RRC) about
743 * the PDCP configuration request primitive execution status.
745 * @param[in] pst - Pointer to the post structure.
746 * @param[in] suId - Service user ID. This is the reference number used
747 * by PDCP to identify its SAP.
748 * @param[in] pdcpCfgCfm - PDCP configuration confirm structure.
752 EXTERN S16 PjUiCpjCfgCfm ARGS((Pst *pst, SuId suId, CpjCfgCfmInfo *cfgCfm));
755 * @brief Reestablishment request primtive
757 * RRC uses this primitive to reestablish the PDCP entity.
758 * This primitive is initiation of reestablishment procedure.
759 * This prmitive and corresponding confirmation are followed by
760 * PjUiCpjCfgReq procedure for entire reestablishment procedure to complete.
762 * @param[in] pst - Pointer to post structure.
763 * @param[in] spId - Service provider ID. This is the reference number used by
764 * PDCP to identify its SAP.
765 * @param[in] reEstReq - PDCP reestablishment request structure.
768 EXTERN S16 PjUiCpjReEstReq ARGS((Pst *pst, SpId spId, CpjReEstReqInfo *reEstReq));
771 * @brief Reestablishment confirmation primitive
773 * This primitive is invoked by PDCP to inform PDCP User (RRC) about the PDCP
774 * (SRB1) reestablishment request primitive execution status.
776 * @param[in] pst - Pointer to the post structure.
777 * @param[in] suId - Service user ID. This is the reference number used
778 * by PDCP to identify its SAP.
779 * @param[in] reEstCfm - PDCP reestablishment confirm structure.
782 EXTERN S16 PjUiCpjReEstCfm ARGS((Pst *pst, SuId suId, CpjReEstCfmInfo *reEstCfm));
785 * @brief Security Configuration request primitive
787 * RRC uses this primitive to configure PDCP security parameters.
788 * Integrity protection and/or Ciphering are configured by RRC based on the
789 * selSecAct flag. Integrity Protection/Ciphering are configured per UE and applicable
790 * to all PDCP entities in that UE. Both Integrity protection and ciphering are
791 * configured during reestablishment.
793 * @param[in] pst - Pointer to post structure.
794 * @param[in] spId - Service provider ID. This is the reference number used by
795 * PDCP to identify its SAP.
796 * @param[in] pdcpSecCfg - PDCP security configuration structure.
800 EXTERN S16 PjUiCpjSecCfgReq ARGS((Pst *pst, SpId spId,
801 CpjSecCfgReqInfo *secCfgReq));
804 * @brief Security Configuration confirmation primitive.
806 * This primitive is invoked by PDCP to inform to PDCP User (RRC) about
807 * the PDCP secutiry configuration request primitive execution status.
809 * @param[in] pst - Pointer to the post structure.
810 * @param[in] suId - Service user ID. This is the reference number used
811 * by PDCP to identify its SAP.
812 * @param[in] pdcpSecCfgCfm - PDCP configuration confirm structure.
816 EXTERN S16 PjUiCpjSecCfgCfm ARGS( (Pst *pst, SuId suId,
817 CpjSecCfgCfmInfo *secCfgCfm));
820 * @brief UE ID change request primitive
822 * This primitive is used by RRC to change the UeId for the existing UE context.
824 * @param[in] pst - Point to the post structure
825 * @param[in] spId - The ID of the service provider SAP in the PDCP layer.
826 * @param[in] transId - Transaction ID. This field uniquely identifies
827 * transaction between RRC and PDCP.
828 * @param[in] oldUeInfo - Old UE ID info for which the change request has come.
829 * @param[in] newUeInfo - New UE ID info for existing UE context.
833 EXTERN S16 PjUiCpjUeIdChgReq ARGS((Pst *pst, SpId spId, U32 transId,
834 CpjUeInfo *oldUeInfo, CpjUeInfo *newUeInfo));
837 * @brief UE ID change confirmation primitive
839 * This primitive is used by PDCP to confirm the UeId change requested by RRC.
840 * The different values for status are:\n
842 * RFAILED - Failure\n
844 * The different reasons for the failure are:
845 * CPJ_CFG_REAS_UE_CREAT_FAIL - UE Cb update failure \n
846 * CPJ_CFG_REAS_UE_UNKWN - Request received for an unknown UE ID.
848 * @param [in] pst - Point to the post structure.
849 * @param [in] suId - The ID of the service user SAP associated with PDCP
850 * @param [in] transId - Transaction ID. This field uniquely identifies
851 * transaction between RRC and PDCP.
852 * @param [in] ueInfo - UE Identity which is changed with the new ID
853 * for the same context.
854 * @param [in] CmStatus - Confirmation status with appropriate reason
858 EXTERN S16 PjUiCpjUeIdChgCfm ARGS((Pst *pst, SuId suId, U32 transId,
859 CpjUeInfo *ueInfo, CmStatus status));
862 * @brief Count request primitive
864 * RRC uses this primitive to request count value for all DRBs in a UE.
865 * PDCP sends the UL and DL count values in the confirmation of this request.
867 * @param[in] pst - Pointer to post structure.
868 * @param[in] spId - Service provider ID. This is the reference number used
869 * by PDCP to identify its SAP.
870 * @param[in] countReq - PDCP Count Request Information.
874 EXTERN S16 PjUiCpjCountReq ARGS((Pst *pst, SpId spId, CpjCountReqInfo *countReq));
877 * @brief Count confirmation primitive
879 * PDCP uses this primitive to send the count values for all
880 * DRBs in a UE to RRC. PDCP sends the RB ID, direction
881 * and count value(s) ( UL, DL or both based on direction of the RB)
884 * @param[in] pst - Pointer to post structure.
885 * @param[in] suId - The ID of the service user SAP associated with PDCP.
886 * @param[in] countCfm - PDCP Count Confirmation Info.
890 EXTERN S16 PjUiCpjCountCfm ARGS((Pst *pst, SuId suId, CpjCountCfmInfo *countCfm));
893 * @brief SDU Status Request primitive
895 * RRC uses this primitive to request the status of the SDUs for DRBs in an UE.
896 * Its used as a reestablishment request during handover.
897 * This primitive is used to forward the handover control Information to the target
900 * @param[in] pst - Pointer to post structure.
901 * @param[in] spId - Service provider ID. This is the reference number used
902 * by PDCP to identify its SAP.
903 * @param[in] sduStaReq - PDCP SDU Status Request Information.
907 EXTERN S16 PjUiCpjSduStaReq ARGS((Pst *pst, SpId spId, CpjSduStaReqInfo *staReq));
910 * @brief SDU Status confirmation primitive
912 * PDCP uses this primitive to send the SDU status for the DRBs in
913 * the requested UE. PDCP sends the RB ID, direction of the RB,status report
914 * and count(to indicate the first missing SN) in UL and count(to indicate
915 * the next SN to be assigned) in DL for each requested DRB mapped on to RLC AM.
917 * @param[in] pst - Pointer to post structure.
918 * @param[in] suId - The ID of the service user SAP associated with PDCP.
919 * @param[in] sduStaCfm - PDCP SDU Status Confirmation Info.
923 EXTERN S16 PjUiCpjSduStaCfm ARGS((Pst *pst, SuId suId, CpjSduStaCfmInfo *staCfm));
925 #ifdef FLAT_BUFFER_OPT
926 EXTERN S16 PjUiCpjDatResumeReqFB ARGS((Pst *pst, SpId spId, CpjDatResumeReqInfo
929 EXTERN S16 PjUiCpjDatForwardReqFB ARGS(( Pst *pst, SpId spId,
930 CpjDataFwdReqInfo *dataFwdReq));
934 EXTERN S16 PjUiCpjDatResumeReq ARGS((Pst *pst, SpId spId, CpjDatResumeReqInfo
937 EXTERN S16 PjUiCpjDatForwardReq ARGS(( Pst *pst, SpId spId,
938 CpjDataFwdReqInfo *dataFwdReq));
940 EXTERN S16 PjUiCpjDatResumeCfm ARGS(( Pst *pst, SuId suId, CpjDatResumeCfmInfo
943 * @brief This API is used to receive a Bind confirm from PDCP to Application.
947 * @param[in] pst - Post structure
948 * @param[in] suId - Service User Id
949 * @param[in] transId - Transaction Id
950 * @param[in] kdfCfmInf - Generated keys
951 * @param[in] status - status of KDF request
955 EXTERN S16 PjUiCpjKdfCfm ARGS ((
958 CpjCfgTransId transId,
959 CpjKdfCfmInfo *kdfCfmInf,
963 EXTERN S16 PjUiCpjKdfReq ARGS((
966 CpjCfgTransId transId,
967 CpjKdfReqInfo *kdfReqInfo
970 EXTERN S16 cmPkCpjKdfReq ARGS((
973 CpjCfgTransId transId,
974 CpjKdfReqInfo *kdfReqInfo
976 /* Configuration Request from User to PHY for
977 * cell or dedicated configuration.
979 EXTERN S16 cmUnpkCpjKdfReq ARGS((
984 /* Configuration Confirm from PHY to User. */
985 EXTERN S16 cmPkCpjKdfCfm ARGS((
988 CpjCfgTransId transId,
989 CpjKdfCfmInfo *kdfCfmInfo,
992 /* Configuration Confirm from PHY to User. */
993 EXTERN S16 cmUnpkCpjKdfCfm ARGS((
1000 /************ Dummy Extern interface primitives ***********************/
1002 EXTERN S16 DmUiCpjBndReq ARGS((Pst *, SuId, SpId));
1004 EXTERN S16 DmUiCpjUbndReq ARGS((Pst *, SpId, Reason));
1006 EXTERN S16 DmUiCpjBndCfm ARGS((Pst *, SuId, U8));
1008 EXTERN S16 DmUiCpjCfgReq ARGS( (Pst *, SpId , CpjCfgReqInfo *));
1010 EXTERN S16 DmUiCpjCfgCfm ARGS( (Pst *, SuId , CpjCfgCfmInfo *));
1012 EXTERN S16 DmUiCpjSecCfgReq ARGS((Pst *, SpId ,CpjSecCfgReqInfo *));
1014 EXTERN S16 DmUiCpjSecCfgCfm ARGS((Pst *, SuId ,CpjSecCfgCfmInfo *));
1016 EXTERN S16 DmUiCpjUeIdChgReq ARGS( (Pst *, SpId , U32, CpjUeInfo *, CpjUeInfo *));
1018 EXTERN S16 DmUiCpjUeIdChgCfm ARGS( (Pst *, SuId , U32, CpjUeInfo *, CmStatus));
1020 EXTERN S16 DmUiCpjReEstReq ARGS((Pst *, SpId , CpjReEstReqInfo *));
1022 EXTERN S16 DmUiCpjReEstCfm ARGS (( Pst *, SuId , CpjReEstCfmInfo *));
1024 EXTERN S16 DmUiCpjCountReq ARGS((Pst *, SpId ,CpjCountReqInfo *));
1026 EXTERN S16 DmUiCpjCountCfm ARGS((Pst *, SuId ,CpjCountCfmInfo *));
1028 EXTERN S16 DmUiCpjSduStaReq ARGS((Pst *, SpId ,CpjSduStaReqInfo *));
1030 EXTERN S16 DmUiCpjStartDataFwdReq ARGS((Pst *, SpId ,CpjDataFwdReqInfo *));
1032 EXTERN S16 DmUiCpjDatResumeReq ARGS((Pst *, SpId ,CpjDatResumeReqInfo *));
1034 EXTERN S16 DmUiCpjSduStaCfm ARGS((Pst *, SuId ,CpjSduStaCfmInfo *));
1036 EXTERN S16 DmUiCpjDatForwardReq ARGS((Pst *,SpId ,CpjDataFwdReqInfo *));
1041 /************ LTE RRC Extern interface primitives ***********************/
1042 #ifdef NH /* LTE-RRC */
1043 EXTERN S16 NhLiCpjBndReq ARGS((Pst *, SuId, SpId));
1045 EXTERN S16 NhLiCpjUbndReq ARGS((Pst *, SpId, Reason));
1047 EXTERN S16 NhLiCpjBndCfm ARGS((Pst *, SuId, U8));
1049 EXTERN S16 NhLiCpjCfgReq ARGS( (Pst *, SpId , CpjCfgReqInfo *));
1051 EXTERN S16 NhLiCpjCfgCfm ARGS( (Pst *, SuId , CpjCfgCfmInfo *));
1053 EXTERN S16 NhLiCpjSecCfgReq ARGS((Pst *, SpId , CpjSecCfgReqInfo *));
1055 EXTERN S16 NhLiCpjSecCfgCfm ARGS((Pst *, SuId , CpjSecCfgCfmInfo *));
1057 EXTERN S16 NhLiCpjUeIdChgReq ARGS( (Pst *, SpId , U32 , CpjUeInfo *, CpjUeInfo *));
1059 EXTERN S16 NhLiCpjUeIdChgCfm ARGS( (Pst *, SuId , U32, CpjUeInfo *, CmStatus));
1061 EXTERN S16 NhLiCpjReEstReq ARGS((Pst *pst, SpId spId, CpjReEstReqInfo *reEstReq));
1063 EXTERN S16 NhLiCpjReEstCfm ARGS (( Pst *pst, SuId suId, CpjReEstCfmInfo *cfmInfo));
1065 EXTERN S16 NhLiCpjCountReq ARGS((Pst *, SpId , CpjCountReqInfo *));
1067 EXTERN S16 NhLiCpjCountCfm ARGS((Pst *, SuId , CpjCountCfmInfo *));
1069 EXTERN S16 NhLiCpjSduStaReq ARGS((Pst *, SpId , CpjSduStaReqInfo *));
1071 EXTERN S16 NhLiCpjSduStaCfm ARGS((Pst *, SuId , CpjSduStaCfmInfo *));
1073 EXTERN S16 NhLiCpjDatResumeCfm ARGS((Pst *, SuId , CpjDatResumeCfmInfo *));
1075 EXTERN S16 NhLiCpjStartDataFwdReq ARGS((Pst *post, SpId spId, CpjDataFwdReqInfo
1077 EXTERN S16 NhLiCpjDatResumeReq ARGS((Pst *post, SpId spId, CpjDatResumeReqInfo
1078 *pdcpDatResumeReq ));
1080 /*************************************************************************
1081 * End of Extern Interface Declarations *
1082 ************************************************************************/
1084 /***********************************************************************
1085 * Start of pack/unpack functions *
1086 * *********************************************************************/
1089 PUBLIC S16 cmPkCpjBndReq ARGS((
1094 PUBLIC S16 cmUnpkCpjBndReq ARGS((
1099 PUBLIC S16 cmPkCpjBndCfm ARGS((
1104 PUBLIC S16 cmUnpkCpjBndCfm ARGS((
1109 PUBLIC S16 cmPkCpjUbndReq ARGS((
1114 PUBLIC S16 cmUnpkCpjUbndReq ARGS((
1119 PUBLIC S16 cmPkCpjCfgReq ARGS((
1122 CpjCfgReqInfo * cfgReq
1124 PUBLIC S16 cmUnpkCpjCfgReq ARGS((
1129 PUBLIC S16 cmPkCpjCfgCfm ARGS((
1132 CpjCfgCfmInfo * cfgCfm
1134 PUBLIC S16 cmUnpkCpjCfgCfm ARGS((
1139 PUBLIC S16 cmPkCpjReEstReq ARGS((
1142 CpjReEstReqInfo * reEstReq
1144 PUBLIC S16 cmUnpkCpjReEstReq ARGS((
1149 PUBLIC S16 cmPkCpjReEstCfm ARGS((
1152 CpjReEstCfmInfo * reEstCfm
1154 PUBLIC S16 cmUnpkCpjReEstCfm ARGS((
1159 PUBLIC S16 cmPkCpjSecCfgReq ARGS((
1162 CpjSecCfgReqInfo * secCfgReq
1164 PUBLIC S16 cmUnpkCpjSecCfgReq ARGS((
1169 PUBLIC S16 cmPkCpjSecCfgCfm ARGS((
1172 CpjSecCfgCfmInfo * secCfgCfm
1174 PUBLIC S16 cmUnpkCpjSecCfgCfm ARGS((
1179 PUBLIC S16 cmPkCpjUeIdChgReq ARGS((
1183 CpjUeInfo * oldUeInfo,
1184 CpjUeInfo * newUeInfo
1186 PUBLIC S16 cmUnpkCpjUeIdChgReq ARGS((
1191 PUBLIC S16 cmPkCpjUeIdChgCfm ARGS((
1198 PUBLIC S16 cmUnpkCpjUeIdChgCfm ARGS((
1203 PUBLIC S16 cmPkCpjCountReq ARGS((
1206 CpjCountReqInfo * countReq
1208 PUBLIC S16 cmUnpkCpjCountReq ARGS((
1213 PUBLIC S16 cmPkCpjCountCfm ARGS((
1216 CpjCountCfmInfo * countCfm
1218 PUBLIC S16 cmUnpkCpjCountCfm ARGS((
1223 PUBLIC S16 cmPkCpjSduStaReq ARGS((
1226 CpjSduStaReqInfo * staReq
1228 PUBLIC S16 cmUnpkCpjSduStaReq ARGS((
1233 PUBLIC S16 cmPkCpjStartDataFwdReq ARGS((
1236 CpjDataFwdReqInfo * dataFwdReq
1238 PUBLIC S16 cmUnpkCpjStartDataFwdReq ARGS((
1244 PUBLIC S16 cmPkCpjDatResumeReq ARGS((
1247 CpjDatResumeReqInfo * dataFwdReq
1250 PUBLIC S16 cmUnpkCpjDatResumeReq ARGS((
1251 CpjDatResumeReq func,
1256 PUBLIC S16 cmPkCpjSduStaCfm ARGS((
1259 CpjSduStaCfmInfo * staCfm
1261 PUBLIC S16 cmUnpkCpjSduStaCfm ARGS((
1266 PUBLIC S16 cmPkCpjRlcAm ARGS((
1270 PUBLIC S16 cmUnpkCpjRlcAm ARGS((
1274 PUBLIC S16 cmPkCpjRlcUm ARGS((
1278 PUBLIC S16 cmUnpkCpjRlcUm ARGS((
1282 PUBLIC S16 cmPkCpjRlcInfo ARGS((
1286 PUBLIC S16 cmUnpkCpjRlcInfo ARGS((
1290 PUBLIC S16 cmPkCpjCipherInfo ARGS((
1291 CpjCipherInfo *param,
1294 PUBLIC S16 cmUnpkCpjCipherInfo ARGS((
1295 CpjCipherInfo *param,
1298 PUBLIC S16 cmPkCpjIntegInfo ARGS((
1299 CpjIntegInfo *param,
1302 PUBLIC S16 cmUnpkCpjIntegInfo ARGS((
1303 CpjIntegInfo *param,
1306 PUBLIC S16 cmPkCpjSecCfg ARGS((
1310 PUBLIC S16 cmUnpkCpjSecCfg ARGS((
1314 PUBLIC S16 cmPkCpjRohcInfo ARGS((
1318 PUBLIC S16 cmUnpkCpjRohcInfo ARGS((
1322 PUBLIC S16 cmPkCpjHdrCompCfg ARGS((
1323 CpjHdrCompCfg *param,
1326 PUBLIC S16 cmUnpkCpjHdrCompCfg ARGS((
1327 CpjHdrCompCfg *param,
1330 PUBLIC S16 cmPkCpjHoInfo ARGS((
1335 PUBLIC S16 cmUnpkCpjHoInfo ARGS((
1340 PUBLIC S16 cmPkCpjCfgEnt ARGS((
1345 PUBLIC S16 cmUnpkCpjCfgEnt ARGS((
1350 PUBLIC S16 cmPkCpjAddCfgEnt ARGS((
1351 CpjAddCfgEnt *param,
1354 PUBLIC S16 cmUnpkCpjAddCfgEnt ARGS((
1355 CpjAddCfgEnt *param,
1358 PUBLIC S16 cmPkCpjModCfgEnt ARGS((
1360 CpjModCfgEnt *param,
1363 PUBLIC S16 cmUnpkCpjModCfgEnt ARGS((
1365 CpjModCfgEnt *param,
1368 PUBLIC S16 cmPkCpjCfgReqInfo ARGS((
1370 CpjCfgReqInfo *param,
1373 PUBLIC S16 cmUnpkCpjCfgReqInfo ARGS((
1375 CpjCfgReqInfo *param,
1378 PUBLIC S16 cmPkCpjCfmEnt ARGS((
1382 PUBLIC S16 cmUnpkCpjCfmEnt ARGS((
1386 PUBLIC S16 cmPkCpjCfgCfmInfo ARGS((
1387 CpjCfgCfmInfo *param,
1390 PUBLIC S16 cmUnpkCpjCfgCfmInfo ARGS((
1391 CpjCfgCfmInfo *param,
1394 PUBLIC S16 cmPkCpjReEstReqInfo ARGS((
1395 CpjReEstReqInfo *param,
1398 PUBLIC S16 cmUnpkCpjReEstReqInfo ARGS((
1399 CpjReEstReqInfo *param,
1402 PUBLIC S16 cmPkCpjReEstCfmInfo ARGS((
1403 CpjReEstCfmInfo *param,
1406 PUBLIC S16 cmUnpkCpjReEstCfmInfo ARGS((
1407 CpjReEstCfmInfo *param,
1410 PUBLIC S16 cmPkCpjSecCfgReqInfo ARGS((
1411 CpjSecCfgReqInfo *param,
1414 PUBLIC S16 cmUnpkCpjSecCfgReqInfo ARGS((
1415 CpjSecCfgReqInfo *param,
1418 PUBLIC S16 cmPkCpjSecCfgCfmInfo ARGS((
1419 CpjSecCfgCfmInfo *param,
1422 PUBLIC S16 cmUnpkCpjSecCfgCfmInfo ARGS((
1423 CpjSecCfgCfmInfo *param,
1426 PUBLIC S16 cmPkCpjUeInfo ARGS((
1430 PUBLIC S16 cmUnpkCpjUeInfo ARGS((
1434 PUBLIC S16 cmPkCpjCountReqInfo ARGS((
1435 CpjCountReqInfo *param,
1438 PUBLIC S16 cmUnpkCpjCountReqInfo ARGS((
1439 CpjCountReqInfo *param,
1442 PUBLIC S16 cmPkCpjCountInfo ARGS((
1443 CpjCountInfo *param,
1446 PUBLIC S16 cmUnpkCpjCountInfo ARGS((
1447 CpjCountInfo *param,
1450 PUBLIC S16 cmPkCpjCountCfmInfo ARGS((
1451 CpjCountCfmInfo *param,
1454 PUBLIC S16 cmUnpkCpjCountCfmInfo ARGS((
1455 CpjCountCfmInfo *param,
1458 PUBLIC S16 cmPkCpjSduStaReqInfo ARGS((
1459 CpjSduStaReqInfo *param,
1462 PUBLIC S16 cmUnpkCpjSduStaReqInfo ARGS((
1463 CpjSduStaReqInfo *param,
1466 PUBLIC S16 cmPkCpjStartDataFwdReqInfo ARGS((
1467 CpjDataFwdReqInfo *param,
1470 PUBLIC S16 cmUnpkCpjStartDataFwdReqInfo ARGS((
1471 CpjDataFwdReqInfo *param,
1475 PUBLIC S16 cmPkCpjDatResumeReqInfo ARGS((
1476 CpjDatResumeReqInfo *param,
1479 PUBLIC S16 cmUnpkCpjDatResumeReqInfo ARGS((
1480 CpjDatResumeReqInfo *param,
1483 PUBLIC S16 cmPkCpjUlSduStaInfo ARGS((
1485 CpjUlSduStaInfo *param,
1488 PUBLIC S16 cmUnpkCpjUlSduStaInfo ARGS((
1490 CpjUlSduStaInfo *param,
1493 PUBLIC S16 cmPkCpjDlSduStaInfo ARGS((
1494 CpjDlSduStaInfo *param,
1497 PUBLIC S16 cmUnpkCpjDlSduStaInfo ARGS((
1498 CpjDlSduStaInfo *param,
1501 PUBLIC S16 cmPkCpjSduStaInfo ARGS((
1503 CpjSduStaInfo *param,
1506 PUBLIC S16 cmUnpkCpjSduStaInfo ARGS((
1508 CpjSduStaInfo *param,
1511 PUBLIC S16 cmPkCpjSduStaCfmInfo ARGS((
1513 CpjSduStaCfmInfo *param,
1516 PUBLIC S16 cmUnpkCpjSduStaCfmInfo ARGS((
1518 CpjSduStaCfmInfo *param,
1521 PUBLIC S16 cmUnpkCpjDatResumeCfmInfo ARGS((
1523 CpjDatResumeCfmInfo *param,
1527 PUBLIC S16 cmPkCpjDataResCfmInfo ARGS((
1529 CpjDatResumeCfmInfo *param,
1533 PUBLIC S16 cmUnpkCpjDatResumeCfm ARGS((
1534 CpjDatResumeCfm func,
1539 PUBLIC S16 cmPkCpjDatResumeCfm ARGS((
1542 CpjDatResumeCfmInfo * dataResCfm
1545 PUBLIC S16 cmUnpkCpjDatResumeCfm ARGS((
1546 CpjDatResumeCfm func,
1551 PUBLIC S16 cmUnpkCpjNhKeyCfmInfo ARGS((
1552 CpjNhKeyCfmInfo *param,
1556 PUBLIC S16 cmUnpkCpjKenbStarCfmInfo ARGS((
1557 CpjKenbStarCfmInfo *param,
1561 PUBLIC S16 cmUnpkCpjAskeyCfmInfo ARGS((
1562 CpjAskeyCfmInfo *param,
1566 PUBLIC S16 cmUnpkCpjKdfCfmInfo ARGS((
1567 CpjKdfCfmInfo *param,
1571 PUBLIC S16 cmUnpkCpjCfgTransId ARGS((
1572 CpjCfgTransId *param,
1576 PUBLIC S16 cmPkCpjNhKeyInfo ARGS((
1577 CpjNhKeyInfo *param,
1581 PUBLIC S16 cmPkCpjKenbStarInfo ARGS((
1582 CpjKenbStarInfo *param,
1586 PUBLIC S16 cmPkCpjAskeyInfo ARGS((
1587 CpjAsKeyInfo *param,
1591 PUBLIC S16 cmPkCpjKdfReqInfo ARGS((
1592 CpjKdfReqInfo *param,
1596 PUBLIC S16 cmPkCpjCfgTransId ARGS((
1597 CpjCfgTransId *param,
1601 PUBLIC S16 cmUnpkCpjNhKeyInfo ARGS((
1602 CpjNhKeyInfo *param,
1606 PUBLIC S16 cmUnpkCpjKenbStarInfo ARGS((
1607 CpjKenbStarInfo *param,
1611 PUBLIC S16 cmUnpkCpjAskeyInfo ARGS((
1612 CpjAsKeyInfo *param,
1616 PUBLIC S16 cmUnpkCpjKdfReqInfo ARGS((
1617 CpjKdfReqInfo *param,
1621 PUBLIC S16 cmPkCpjNhKeyCfmInfo ARGS((
1622 CpjNhKeyCfmInfo *param,
1626 PUBLIC S16 cmPkCpjKenbStarCfmInfo ARGS((
1627 CpjKenbStarCfmInfo *param,
1631 PUBLIC S16 cmPkCpjAskeyCfmInfo ARGS((
1632 CpjAskeyCfmInfo *param,
1636 PUBLIC S16 cmPkCpjKdfCfmInfo ARGS((
1637 CpjKdfCfmInfo *param,
1643 /***********************************************************************
1644 * End of pack/unpack functions *
1645 * *********************************************************************/
1649 #endif /* __cplusplus */
1650 #endif /* __CPJ_X__ */
1652 /********************************************************************30**
1655 **********************************************************************/