Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2010-2014 Broadcom Corporation
      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 /******************************************************************************
     20  *
     21  *  This is the public interface file for NFA P2P, Broadcom's NFC
     22  *  application layer for mobile phones.
     23  *
     24  ******************************************************************************/
     25 #ifndef NFA_P2P_API_H
     26 #define NFA_P2P_API_H
     27 
     28 #include "llcp_api.h"
     29 #include "nfa_api.h"
     30 
     31 /*****************************************************************************
     32 **  Constants and data types
     33 *****************************************************************************/
     34 
     35 /* NFA P2P Reason of disconnection */
     36 #define NFA_P2P_DISC_REASON_REMOTE_INITIATE \
     37   0x00 /* remote initiated to disconnect  */
     38 #define NFA_P2P_DISC_REASON_LOCAL_INITITATE \
     39   0x01 /* local initiated to disconnect   */
     40 #define NFA_P2P_DISC_REASON_NO_SERVICE \
     41   0x02 /* no service bound in remote      */
     42 #define NFA_P2P_DISC_REASON_REMOTE_REJECT \
     43   0x03 /* remote rejected connection      */
     44 #define NFA_P2P_DISC_REASON_FRAME_ERROR \
     45   0x04 /* sending or receiving FRMR PDU   */
     46 #define NFA_P2P_DISC_REASON_LLCP_DEACTIVATED \
     47   0x05 /* LLCP link deactivated           */
     48 #define NFA_P2P_DISC_REASON_NO_RESOURCE \
     49   0x06 /* Out of resource in local device */
     50 #define NFA_P2P_DISC_REASON_NO_INFORMATION \
     51   0x80 /* Without information             */
     52 
     53 /* NFA P2P callback events */
     54 /* Server is registered                         */
     55 #define NFA_P2P_REG_SERVER_EVT 0x00
     56 /* Client is registered                         */
     57 #define NFA_P2P_REG_CLIENT_EVT 0x01
     58 /* LLCP Link has been activated                 */
     59 #define NFA_P2P_ACTIVATED_EVT 0x02
     60 #define NFA_P2P_DEACTIVATED_EVT \
     61   0x03 /* LLCP Link has been deactivated               */
     62 /* Data link connection request from peer       */
     63 #define NFA_P2P_CONN_REQ_EVT 0x04
     64 /* Data link connection has been established    */
     65 #define NFA_P2P_CONNECTED_EVT 0x05
     66 /* Data link connection has been disconnected   */
     67 #define NFA_P2P_DISC_EVT 0x06
     68 /* Data received from peer                      */
     69 #define NFA_P2P_DATA_EVT 0x07
     70 /* Status indication of outgoing data           */
     71 #define NFA_P2P_CONGEST_EVT 0x08
     72 /* link MIU and Well-Known Service list         */
     73 #define NFA_P2P_LINK_INFO_EVT 0x09
     74 #define NFA_P2P_SDP_EVT 0x0A /* Remote SAP of SDP result */
     75 
     76 typedef uint8_t tNFA_P2P_EVT;
     77 
     78 /* NFA allocates a SAP for server */
     79 #define NFA_P2P_ANY_SAP LLCP_INVALID_SAP
     80 #define NFA_P2P_INVALID_SAP LLCP_INVALID_SAP
     81 
     82 /* Recommanded MIU's for connection-oriented */
     83 #define NFA_P2P_MIU_1 \
     84   (NCI_NFC_DEP_MAX_DATA - LLCP_PDU_HEADER_SIZE - LLCP_SEQUENCE_SIZE)
     85 #define NFA_P2P_MIU_2 \
     86   (2 * NCI_NFC_DEP_MAX_DATA - LLCP_PDU_HEADER_SIZE - LLCP_SEQUENCE_SIZE)
     87 #define NFA_P2P_MIU_3 \
     88   (3 * NCI_NFC_DEP_MAX_DATA - LLCP_PDU_HEADER_SIZE - LLCP_SEQUENCE_SIZE)
     89 #define NFA_P2P_MIU_8 \
     90   (8 * NCI_NFC_DEP_MAX_DATA - LLCP_PDU_HEADER_SIZE - LLCP_SEQUENCE_SIZE)
     91 
     92 #define NFA_P2P_LLINK_TYPE LLCP_LINK_TYPE_LOGICAL_DATA_LINK
     93 #define NFA_P2P_DLINK_TYPE LLCP_LINK_TYPE_DATA_LINK_CONNECTION
     94 typedef uint8_t tNFA_P2P_LINK_TYPE;
     95 
     96 /* Data for NFA_P2P_REG_SERVER_EVT */
     97 typedef struct {
     98   tNFA_HANDLE server_handle; /* NFA_HANDLE_INVALID if failed */
     99   char service_name[LLCP_MAX_SN_LEN + 1];
    100   uint8_t server_sap;
    101 } tNFA_P2P_REG_SERVER;
    102 
    103 /* Data for NFA_P2P_REG_CLIENT_EVT */
    104 typedef struct {
    105   tNFA_HANDLE client_handle; /* NFA_HANDLE_INVALID if failed */
    106 } tNFA_P2P_REG_CLIENT;
    107 
    108 /* Data for NFA_P2P_ACTIVATED_EVT */
    109 typedef struct {
    110   tNFA_HANDLE handle;
    111   uint16_t local_link_miu;
    112   uint16_t remote_link_miu;
    113 } tNFA_P2P_ACTIVATED;
    114 
    115 /* Data for NFA_P2P_DEACTIVATED_EVT */
    116 typedef struct { tNFA_HANDLE handle; } tNFA_P2P_DEACTIVATED;
    117 
    118 /* Data for NFA_P2P_CONN_REQ_EVT */
    119 typedef struct {
    120   tNFA_HANDLE server_handle;
    121   tNFA_HANDLE conn_handle;
    122   uint8_t remote_sap;
    123   uint16_t remote_miu;
    124   uint8_t remote_rw;
    125 } tNFA_P2P_CONN_REQ;
    126 
    127 /* Data for NFA_P2P_CONNECTED_EVT */
    128 typedef struct {
    129   tNFA_HANDLE client_handle;
    130   tNFA_HANDLE conn_handle;
    131   uint8_t remote_sap;
    132   uint16_t remote_miu;
    133   uint8_t remote_rw;
    134 } tNFA_P2P_CONN;
    135 
    136 /* Data for NFA_P2P_DISC_EVT */
    137 typedef struct {
    138   tNFA_HANDLE handle;
    139   uint8_t reason;
    140 } tNFA_P2P_DISC;
    141 
    142 /* Data for NFA_P2P_DATA_EVT */
    143 typedef struct {
    144   tNFA_HANDLE handle;
    145   uint8_t remote_sap;
    146   tNFA_P2P_LINK_TYPE link_type;
    147 } tNFA_P2P_DATA;
    148 
    149 /* Data for NFA_P2P_CONGEST_EVT */
    150 typedef struct {
    151   tNFA_HANDLE handle;
    152   bool is_congested;
    153   tNFA_P2P_LINK_TYPE link_type;
    154 } tNFA_P2P_CONGEST;
    155 
    156 /* Data for NFA_P2P_LINK_INFO_EVT */
    157 typedef struct {
    158   tNFA_HANDLE handle;
    159   uint16_t wks; /* well-known service */
    160   uint16_t local_link_miu;
    161   uint16_t remote_link_miu;
    162 } tNFA_P2P_LINK_INFO;
    163 
    164 /* Data for NFA_P2P_SDP_EVT */
    165 typedef struct {
    166   tNFA_HANDLE handle;
    167   uint8_t remote_sap; /* 0x00 if failed */
    168 } tNFA_P2P_SDP;
    169 
    170 /* Union of all P2P callback structures */
    171 typedef union {
    172   tNFA_P2P_REG_SERVER reg_server;   /* NFA_P2P_REG_SERVER_EVT   */
    173   tNFA_P2P_REG_CLIENT reg_client;   /* NFA_P2P_REG_CLIENT_EVT   */
    174   tNFA_P2P_ACTIVATED activated;     /* NFA_P2P_ACTIVATED_EVT    */
    175   tNFA_P2P_DEACTIVATED deactivated; /* NFA_P2P_DEACTIVATED_EVT  */
    176   tNFA_P2P_CONN_REQ conn_req;       /* NFA_P2P_CONN_REQ_EVT     */
    177   tNFA_P2P_CONN connected;          /* NFA_P2P_CONNECTED_EVT    */
    178   tNFA_P2P_DISC disc;               /* NFA_P2P_DISC_EVT         */
    179   tNFA_P2P_DATA data;               /* NFA_P2P_DATA_EVT         */
    180   tNFA_P2P_CONGEST congest;         /* NFA_P2P_CONGEST_EVT      */
    181   tNFA_P2P_LINK_INFO link_info;     /* NFA_P2P_LINK_INFO_EVT    */
    182   tNFA_P2P_SDP sdp;                 /* NFA_P2P_SDP_EVT          */
    183 } tNFA_P2P_EVT_DATA;
    184 
    185 /* NFA P2P callback */
    186 typedef void(tNFA_P2P_CBACK)(tNFA_P2P_EVT event, tNFA_P2P_EVT_DATA* p_data);
    187 
    188 /*****************************************************************************
    189 **  External Function Declarations
    190 *****************************************************************************/
    191 #ifdef __cplusplus
    192 extern "C" {
    193 #endif
    194 
    195 /*******************************************************************************
    196 **
    197 ** Function         NFA_P2pRegisterServer
    198 **
    199 ** Description      This function is called to listen to a SAP as server on
    200 **                  LLCP.
    201 **
    202 **                  NFA_P2P_REG_SERVER_EVT will be returned with status and
    203 **                  handle.
    204 **
    205 **                  If server_sap is set to NFA_P2P_ANY_SAP, then NFA will
    206 **                  allocate a SAP between LLCP_LOWER_BOUND_SDP_SAP and
    207 **                  LLCP_UPPER_BOUND_SDP_SAP Otherwise, server_sap must be
    208 **                  between (LLCP_SDP_SAP + 1) and LLCP_UPPER_BOUND_SDP_SAP
    209 **
    210 **                  link_type : NFA_P2P_LLINK_TYPE and/or NFA_P2P_DLINK_TYPE
    211 **
    212 ** Note:            If RF discovery is started,
    213 **                  NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should
    214 **                  happen before calling this function
    215 **
    216 ** Returns          NFA_STATUS_OK if successfully initiated
    217 **                  NFA_STATUS_FAILED otherwise
    218 **
    219 *******************************************************************************/
    220 extern tNFA_STATUS NFA_P2pRegisterServer(uint8_t server_sap,
    221                                          tNFA_P2P_LINK_TYPE link_type,
    222                                          char* p_service_name,
    223                                          tNFA_P2P_CBACK* p_cback);
    224 
    225 /*******************************************************************************
    226 **
    227 ** Function         NFA_P2pRegisterClient
    228 **
    229 ** Description      This function is called to register a client service on
    230 **                  LLCP.
    231 **
    232 **                  NFA_P2P_REG_CLIENT_EVT will be returned with status and
    233 **                  handle.
    234 **
    235 **                  link_type : NFA_P2P_LLINK_TYPE and/or NFA_P2P_DLINK_TYPE
    236 **
    237 ** Returns          NFA_STATUS_OK if successfully initiated
    238 **                  NFA_STATUS_FAILED otherwise
    239 **
    240 *******************************************************************************/
    241 extern tNFA_STATUS NFA_P2pRegisterClient(tNFA_P2P_LINK_TYPE link_type,
    242                                          tNFA_P2P_CBACK* p_cback);
    243 
    244 /*******************************************************************************
    245 **
    246 ** Function         NFA_P2pDeregister
    247 **
    248 ** Description      This function is called to stop listening to a SAP as server
    249 **                  or stop client service on LLCP.
    250 **
    251 ** Note:            If this function is called to de-register a server and RF
    252 **                  discovery is started,
    253 **                  NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should
    254 **                  happen before calling this function
    255 **
    256 ** Returns          NFA_STATUS_OK if successfully initiated
    257 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    258 **                  NFA_STATUS_FAILED otherwise
    259 **
    260 *******************************************************************************/
    261 extern tNFA_STATUS NFA_P2pDeregister(tNFA_HANDLE handle);
    262 
    263 /*******************************************************************************
    264 **
    265 ** Function         NFA_P2pAcceptConn
    266 **
    267 ** Description      This function is called to accept a request of data link
    268 **                  connection to a listening SAP on LLCP after receiving
    269 **                  NFA_P2P_CONN_REQ_EVT.
    270 **
    271 ** Returns          NFA_STATUS_OK if successfully initiated
    272 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    273 **                  NFA_STATUS_FAILED otherwise
    274 **
    275 *******************************************************************************/
    276 extern tNFA_STATUS NFA_P2pAcceptConn(tNFA_HANDLE conn_handle, uint16_t miu,
    277                                      uint8_t rw);
    278 
    279 /*******************************************************************************
    280 **
    281 ** Function         NFA_P2pRejectConn
    282 **
    283 ** Description      This function is called to reject a request of data link
    284 **                  connection to a listening SAP on LLCP after receiving
    285 **                  NFA_P2P_CONN_REQ_EVT.
    286 **
    287 ** Returns          NFA_STATUS_OK if successfully initiated
    288 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    289 **                  NFA_STATUS_FAILED otherwise
    290 **
    291 *******************************************************************************/
    292 extern tNFA_STATUS NFA_P2pRejectConn(tNFA_HANDLE conn_handle);
    293 
    294 /*******************************************************************************
    295 **
    296 ** Function         NFA_P2pDisconnect
    297 **
    298 ** Description      This function is called to disconnect an existing or
    299 **                  connecting data link connection.
    300 **
    301 **                  discard any pending data on data link connection if flush is
    302 **                  set to TRUE
    303 **
    304 **                  NFA_P2P_DISC_EVT will be returned after data link connection
    305 **                  is disconnected
    306 **
    307 ** Returns          NFA_STATUS_OK if successfully initiated
    308 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    309 **                  NFA_STATUS_FAILED otherwise
    310 **
    311 *******************************************************************************/
    312 extern tNFA_STATUS NFA_P2pDisconnect(tNFA_HANDLE conn_handle, bool flush);
    313 
    314 /*******************************************************************************
    315 **
    316 ** Function         NFA_P2pConnectByName
    317 **
    318 ** Description      This function is called to create a connection-oriented
    319 **                  transport by a service name.
    320 **                  NFA_P2P_CONNECTED_EVT if success
    321 **                  NFA_P2P_DISC_EVT if failed
    322 **
    323 ** Returns          NFA_STATUS_OK if successfully initiated
    324 **                  NFA_STATUS_BAD_HANDLE if client is not registered
    325 **                  NFA_STATUS_FAILED otherwise
    326 **
    327 *******************************************************************************/
    328 extern tNFA_STATUS NFA_P2pConnectByName(tNFA_HANDLE client_handle,
    329                                         char* p_service_name, uint16_t miu,
    330                                         uint8_t rw);
    331 
    332 /*******************************************************************************
    333 **
    334 ** Function         NFA_P2pConnectBySap
    335 **
    336 ** Description      This function is called to create a connection-oriented
    337 **                  transport by a SAP.
    338 **                  NFA_P2P_CONNECTED_EVT if success
    339 **                  NFA_P2P_DISC_EVT if failed
    340 **
    341 ** Returns          NFA_STATUS_OK if successfully initiated
    342 **                  NFA_STATUS_BAD_HANDLE if client is not registered
    343 **                  NFA_STATUS_FAILED otherwise
    344 **
    345 *******************************************************************************/
    346 extern tNFA_STATUS NFA_P2pConnectBySap(tNFA_HANDLE client_handle, uint8_t dsap,
    347                                        uint16_t miu, uint8_t rw);
    348 
    349 /*******************************************************************************
    350 **
    351 ** Function         NFA_P2pSendUI
    352 **
    353 ** Description      This function is called to send data on connectionless
    354 **                  transport.
    355 **
    356 ** Returns          NFA_STATUS_OK if successfully initiated
    357 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    358 **                  NFA_STATUS_BAD_LENGTH if data length is more than remote
    359 **                  link MIU
    360 **                  NFA_STATUS_CONGESTED  if congested
    361 **                  NFA_STATUS_FAILED otherwise
    362 **
    363 *******************************************************************************/
    364 extern tNFA_STATUS NFA_P2pSendUI(tNFA_HANDLE handle, uint8_t dsap,
    365                                  uint16_t length, uint8_t* p_data);
    366 
    367 /*******************************************************************************
    368 **
    369 ** Function         NFA_P2pReadUI
    370 **
    371 ** Description      This function is called to read data on connectionless
    372 **                  transport when receiving NFA_P2P_DATA_EVT with
    373 **                  NFA_P2P_LLINK_TYPE.
    374 **
    375 **                  - Remote SAP who sent UI PDU is returned.
    376 **                  - Information of UI PDU up to max_data_len is copied into
    377 **                    p_data.
    378 **                  - If more information of UI PDU or more UI PDU in queue then
    379 **                    more is returned to TRUE.
    380 **                  - Information of next UI PDU is not concatenated.
    381 **
    382 ** Returns          NFA_STATUS_OK if successfully initiated
    383 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    384 **
    385 *******************************************************************************/
    386 extern tNFA_STATUS NFA_P2pReadUI(tNFA_HANDLE handle, uint32_t max_data_len,
    387                                  uint8_t* p_remote_sap, uint32_t* p_data_len,
    388                                  uint8_t* p_data, bool* p_more);
    389 
    390 /*******************************************************************************
    391 **
    392 ** Function         NFA_P2pFlushUI
    393 **
    394 ** Description      This function is called to flush data on connectionless
    395 **                  transport.
    396 **
    397 ** Returns          NFA_STATUS_OK if successfully initiated
    398 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    399 **
    400 *******************************************************************************/
    401 extern tNFA_STATUS NFA_P2pFlushUI(tNFA_HANDLE handle, uint32_t* p_length);
    402 
    403 /*******************************************************************************
    404 **
    405 ** Function         NFA_P2pSendData
    406 **
    407 ** Description      This function is called to send data on connection-oriented
    408 **                  transport.
    409 **
    410 ** Returns          NFA_STATUS_OK if successfully initiated
    411 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    412 **                  NFA_STATUS_BAD_LENGTH if data length is more than remote MIU
    413 **                  NFA_STATUS_CONGESTED  if congested
    414 **                  NFA_STATUS_FAILED otherwise
    415 **
    416 *******************************************************************************/
    417 extern tNFA_STATUS NFA_P2pSendData(tNFA_HANDLE conn_handle, uint16_t length,
    418                                    uint8_t* p_data);
    419 
    420 /*******************************************************************************
    421 **
    422 ** Function         NFA_P2pReadData
    423 **
    424 ** Description      This function is called to read data on connection-oriented
    425 **                  transport when receiving NFA_P2P_DATA_EVT with
    426 **                  NFA_P2P_DLINK_TYPE.
    427 **
    428 **                  - Information of I PDU is copied into p_data up to
    429 **                    max_data_len.
    430 **                  - If more information of I PDU or more I PDU in queue, then
    431 **                    more is returned to TRUE.
    432 **                  - Information of next I PDU is not concatenated.
    433 **
    434 ** Returns          NFA_STATUS_OK if successfully initiated
    435 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    436 **
    437 *******************************************************************************/
    438 extern tNFA_STATUS NFA_P2pReadData(tNFA_HANDLE handle, uint32_t max_data_len,
    439                                    uint32_t* p_data_len, uint8_t* p_data,
    440                                    bool* p_more);
    441 
    442 /*******************************************************************************
    443 **
    444 ** Function         NFA_P2pFlushData
    445 **
    446 ** Description      This function is called to flush data on connection-oriented
    447 **                  transport.
    448 **
    449 ** Returns          NFA_STATUS_OK if successfully initiated
    450 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    451 **
    452 *******************************************************************************/
    453 extern tNFA_STATUS NFA_P2pFlushData(tNFA_HANDLE handle, uint32_t* p_length);
    454 
    455 /*******************************************************************************
    456 **
    457 ** Function         NFA_P2pSetLocalBusy
    458 **
    459 ** Description      This function is called to stop or resume incoming data on
    460 **                  connection-oriented transport.
    461 **
    462 ** Returns          NFA_STATUS_OK if successfully initiated
    463 **                  NFA_STATUS_BAD_HANDLE if handle is not valid
    464 **                  NFA_STATUS_FAILED otherwise
    465 **
    466 *******************************************************************************/
    467 extern tNFA_STATUS NFA_P2pSetLocalBusy(tNFA_HANDLE conn_handle, bool is_busy);
    468 
    469 /*******************************************************************************
    470 **
    471 ** Function         NFA_P2pGetLinkInfo
    472 **
    473 ** Description      This function is called to get local/remote link MIU and
    474 **                  Well-Known Service list encoded as a 16-bit field of
    475 **                  connected LLCP. NFA_P2P_LINK_INFO_EVT will be returned.
    476 **
    477 ** Returns          NFA_STATUS_OK if successfully initiated
    478 **                  NFA_STATUS_BAD_HANDLE if server or client is not registered
    479 **                  NFA_STATUS_FAILED otherwise
    480 **
    481 *******************************************************************************/
    482 extern tNFA_STATUS NFA_P2pGetLinkInfo(tNFA_HANDLE handle);
    483 
    484 /*******************************************************************************
    485 **
    486 ** Function         NFA_P2pGetRemoteSap
    487 **
    488 ** Description      This function is called to get SAP associated by service
    489 **                  name on connected remote LLCP.
    490 **                  NFA_P2P_SDP_EVT will be returned.
    491 **
    492 ** Returns          NFA_STATUS_OK if successfully initiated
    493 **                  NFA_STATUS_BAD_HANDLE if server or client is not registered
    494 **                  NFA_STATUS_FAILED otherwise
    495 **
    496 *******************************************************************************/
    497 extern tNFA_STATUS NFA_P2pGetRemoteSap(tNFA_HANDLE handle,
    498                                        char* p_service_name);
    499 
    500 /*******************************************************************************
    501 **
    502 ** Function         NFA_P2pSetLLCPConfig
    503 **
    504 ** Description      This function is called to change LLCP config parameters.
    505 **                  Application must call while LLCP is not activated.
    506 **
    507 **                  Parameters descriptions (default value)
    508 **                  - Local Link MIU (LLCP_MIU)
    509 **                  - Option parameter (LLCP_OPT_VALUE)
    510 **                  - Response Waiting Time Index (LLCP_WAITING_TIME)
    511 **                  - Local Link Timeout (LLCP_LTO_VALUE)
    512 **                  - Inactivity Timeout as initiator role
    513 **                    (LLCP_INIT_INACTIVITY_TIMEOUT)
    514 **                  - Inactivity Timeout as target role
    515 **                    (LLCP_TARGET_INACTIVITY_TIMEOUT)
    516 **                  - Delay SYMM response (LLCP_DELAY_RESP_TIME)
    517 **                  - Data link connection timeout
    518 **                    (LLCP_DATA_LINK_CONNECTION_TOUT)
    519 **                  - Delay timeout to send first PDU as initiator
    520 **                    (LLCP_DELAY_TIME_TO_SEND_FIRST_PDU)
    521 **
    522 ** Returns          NFA_STATUS_OK if successfully initiated
    523 **                  NFA_STATUS_FAILED otherwise
    524 **
    525 *******************************************************************************/
    526 extern tNFA_STATUS NFA_P2pSetLLCPConfig(uint16_t link_miu, uint8_t opt,
    527                                         uint8_t wt, uint16_t link_timeout,
    528                                         uint16_t inact_timeout_init,
    529                                         uint16_t inact_timeout_target,
    530                                         uint16_t symm_delay,
    531                                         uint16_t data_link_timeout,
    532                                         uint16_t delay_first_pdu_timeout);
    533 
    534 /*******************************************************************************
    535 **
    536 ** Function         NFA_P2pGetLLCPConfig
    537 **
    538 ** Description      This function is called to read LLCP config parameters.
    539 **
    540 **                  Parameters descriptions
    541 **                  - Local Link MIU
    542 **                  - Option parameter
    543 **                  - Response Waiting Time Index
    544 **                  - Local Link Timeout
    545 **                  - Inactivity Timeout as initiator role
    546 **                  - Inactivity Timeout as target role
    547 **                  - Delay SYMM response
    548 **                  - Data link connection timeout
    549 **                  - Delay timeout to send first PDU as initiator
    550 **
    551 ** Returns          None
    552 **
    553 *******************************************************************************/
    554 extern void NFA_P2pGetLLCPConfig(uint16_t* p_link_miu, uint8_t* p_opt,
    555                                  uint8_t* p_wt, uint16_t* p_link_timeout,
    556                                  uint16_t* p_inact_timeout_init,
    557                                  uint16_t* p_inact_timeout_target,
    558                                  uint16_t* p_symm_delay,
    559                                  uint16_t* p_data_link_timeout,
    560                                  uint16_t* p_delay_first_pdu_timeout);
    561 
    562 /*******************************************************************************
    563 **
    564 ** Function         NFA_P2pSetTraceLevel
    565 **
    566 ** Description      This function sets the trace level for P2P.  If called with
    567 **                  a value of 0xFF, it simply returns the current trace level.
    568 **
    569 ** Returns          The new or current trace level
    570 **
    571 *******************************************************************************/
    572 extern uint8_t NFA_P2pSetTraceLevel(uint8_t new_level);
    573 
    574 #ifdef __cplusplus
    575 }
    576 #endif
    577 
    578 #endif /* NFA_P2P_API_H */
    579