27#ifndef BTIF_PAN_INTERNAL_H
28#define BTIF_PAN_INTERNAL_H
37#define PAN_NAP_SERVICE_NAME "Android Network Access Point"
38#define PANU_SERVICE_NAME "Android Network User"
39#define TAP_IF_NAME "bt-pan"
42#define PAN_SECURITY (BTM_SEC_IN_AUTHENTICATE | BTM_SEC_OUT_AUTHENTICATE | BTM_SEC_IN_ENCRYPT | BTM_SEC_OUT_ENCRYPT)
45#define PAN_STATE_UNKNOWN 0
46#define PAN_STATE_OPEN 1
47#define PAN_STATE_CLOSE 2
48#ifndef PAN_ROLE_INACTIVE
49#define PAN_ROLE_INACTIVE 0
59 unsigned char h_dest[ETH_ADDR_LEN];
60 unsigned char h_src[ETH_ADDR_LEN];
72 unsigned char eth_addr[ETH_ADDR_LEN];
78 int btl_if_handle_panu;
91btpan_conn_t *btpan_new_conn(
int handle,
const BD_ADDR addr,
int local_role,
int peer_role);
94int btpan_get_connected_count(
void);
95int btpan_tap_open(
void);
96void create_tap_read_thread(
int tap_fd);
97void destroy_tap_read_thread(
void);
98int btpan_tap_close(
int tap_fd);
99int btpan_tap_send(
int tap_fd,
const BD_ADDR src,
const BD_ADDR dst, UINT16 protocol,
100 const char* buff, UINT16 size, BOOLEAN ext, BOOLEAN forward);
102static inline int is_empty_eth_addr(
const BD_ADDR addr)
105 for(i = 0; i < BD_ADDR_LEN; i++)
111static inline int is_valid_bt_eth_addr(
const BD_ADDR addr)
113 if(is_empty_eth_addr(addr))
115 return addr[0] & 1 ? 0 : 1;