Mistake on this page?
Report an issue in GitHub or email us
lctr_int_enc_slave.h
Go to the documentation of this file.
1 /*************************************************************************************************/
2 /*!
3  * \file
4  *
5  * \brief Internal link layer controller slave connection interface file.
6  *
7  * Copyright (c) 2013-2017 ARM Ltd. All Rights Reserved.
8  *
9  * Copyright (c) 2019 Packetcraft, Inc.
10  *
11  * Licensed under the Apache License, Version 2.0 (the "License");
12  * you may not use this file except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  * http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  */
23 /*************************************************************************************************/
24 
25 #ifndef LCTR_INT_ENC_SLAVE_H
26 #define LCTR_INT_ENC_SLAVE_H
27 
28 #include "lctr_int.h"
29 #include "lctr_int_conn.h"
30 #include "lctr_api_conn.h"
31 #include "lctr_pdu_conn.h"
32 #include "ll_defs.h"
33 #include "bb_ble_api.h"
34 #include "wsf_msg.h"
35 #include "wsf_timer.h"
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 /**************************************************************************************************
42  Macros
43 **************************************************************************************************/
44 
45 /*! \brief Master SKD offset. */
46 #define LCTR_SKD_M_OFFS 0
47 
48 /*! \brief Master IV offset. */
49 #define LCTR_IV_M_OFFS 0
50 
51 /*! \brief Slave SKD offset. */
52 #define LCTR_SKD_S_OFFS (LL_SKD_LEN / 2)
53 
54 /*! \brief Slave IV offset. */
55 #define LCTR_IV_S_OFFS (LL_IV_LEN / 2)
56 
57 /**************************************************************************************************
58  Function Declarations
59 **************************************************************************************************/
60 
61 /* State machine */
62 bool_t lctrSlvExecuteEncryptSm(lctrConnCtx_t *pCtx, uint8_t event);
63 bool_t lctrExecutePingSm(lctrConnCtx_t *pCtx, uint8_t event);
64 
65 /* Action routines. */
66 void lctrEnableTxDataEnc(lctrConnCtx_t *pCtx);
67 void lctrDisableTxDataEnc(lctrConnCtx_t *pCtx);
68 void lctrEnableRxDataEnc(lctrConnCtx_t *pCtx);
69 void lctrDisableRxDataEnc(lctrConnCtx_t *pCtx);
70 void lctrGenerateSlvVectors(lctrConnCtx_t *pCtx);
71 void lctrStoreLtkReply(lctrConnCtx_t *pCtx);
72 void lctrStoreLtkNegRepTerminateReason(lctrConnCtx_t *pCtx);
73 void lctrCalcSessionKey(lctrConnCtx_t *pCtx);
74 void lctrInvalidEncPduSeq(lctrConnCtx_t *pCtx);
75 void lctrSendEncRsp(lctrConnCtx_t *pCtx);
76 void lctrSendStartEncReq(lctrConnCtx_t *pCtx);
77 void lctrSendStartEncRsp(lctrConnCtx_t *pCtx);
78 void lctrSendPauseEncReq(lctrConnCtx_t *pCtx);
79 void lctrSendPauseEncRsp(lctrConnCtx_t *pCtx);
80 void lctrSendPingReq(lctrConnCtx_t *pCtx);
81 void lctrSendPingRsp(lctrConnCtx_t *pCtx);
82 void lctrEncNotifyHostLtkReqInd(lctrConnCtx_t *pCtx);
83 void lctrNotifyEncChangeInd(lctrConnCtx_t *pCtx, uint8_t status);
84 void lctrNotifyEncKeyRefreshInd(lctrConnCtx_t *pCtx);
85 void lctrNotifyAuthPayloadTimeout(lctrConnCtx_t *pCtx);
86 void lctrRestartAuthPayloadTimer(lctrConnCtx_t *pCtx);
87 
88 #ifdef __cplusplus
89 };
90 #endif
91 
92 #endif /* LCTR_INT_ENC_SLAVE_H */
Link layer controller connection interface file.
Connection context.
BLE baseband interface file.
Message passing service.
Link layer controller data channel packet interface file.
Link layer constant definitions.
Internal link layer controller connection interface file.
Timer service.
Internal link layer controller interface file.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.