• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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