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