37#define BNEP_FRAME_GENERAL_ETHERNET 0x00
38#define BNEP_FRAME_CONTROL 0x01
39#define BNEP_FRAME_COMPRESSED_ETHERNET 0x02
40#define BNEP_FRAME_COMPRESSED_ETHERNET_SRC_ONLY 0x03
41#define BNEP_FRAME_COMPRESSED_ETHERNET_DEST_ONLY 0x04
46#define BNEP_CONTROL_COMMAND_NOT_UNDERSTOOD 0x00
47#define BNEP_SETUP_CONNECTION_REQUEST_MSG 0x01
48#define BNEP_SETUP_CONNECTION_RESPONSE_MSG 0x02
49#define BNEP_FILTER_NET_TYPE_SET_MSG 0x03
50#define BNEP_FILTER_NET_TYPE_RESPONSE_MSG 0x04
51#define BNEP_FILTER_MULTI_ADDR_SET_MSG 0x05
52#define BNEP_FILTER_MULTI_ADDR_RESPONSE_MSG 0x06
57#define BNEP_EXTENSION_FILTER_CONTROL 0x00
62#define BNEP_SETUP_CONN_OK 0x0000
63#define BNEP_SETUP_INVALID_DEST_UUID 0x0001
64#define BNEP_SETUP_INVALID_SRC_UUID 0x0002
65#define BNEP_SETUP_INVALID_UUID_SIZE 0x0003
66#define BNEP_SETUP_CONN_NOT_ALLOWED 0x0004
71#define BNEP_FILTER_CRL_OK 0x0000
72#define BNEP_FILTER_CRL_UNSUPPORTED 0x0001
73#define BNEP_FILTER_CRL_BAD_RANGE 0x0002
74#define BNEP_FILTER_CRL_MAX_REACHED 0x0003
75#define BNEP_FILTER_CRL_SECURITY_ERR 0x0004
79#define BNEP_802_1_P_PROTOCOL 0x8100
83#define BNEP_CONN_TIMEOUT 20
84#define BNEP_HOST_TIMEOUT 200
85#define BNEP_FILTER_SET_TIMEOUT 10
88#define BNEP_OFLOW_QOS_FLAG 0
89#define BNEP_OFLOW_SERV_TYPE 0
90#define BNEP_OFLOW_TOKEN_RATE 0
91#define BNEP_OFLOW_TOKEN_BUCKET_SIZE 0
92#define BNEP_OFLOW_PEAK_BANDWIDTH 0
93#define BNEP_OFLOW_LATENCY 0
94#define BNEP_OFLOW_DELAY_VARIATION 0
97#define BNEP_IFLOW_QOS_FLAG 0
98#define BNEP_IFLOW_SERV_TYPE 0
99#define BNEP_IFLOW_TOKEN_RATE 0
100#define BNEP_IFLOW_TOKEN_BUCKET_SIZE 0
101#define BNEP_IFLOW_PEAK_BANDWIDTH 0
102#define BNEP_IFLOW_LATENCY 0
103#define BNEP_IFLOW_DELAY_VARIATION 0
105#define BNEP_FLUSH_TO 0xFFFF
107#define BNEP_MAX_RETRANSMITS 3
113#define BNEP_STATE_IDLE 0
114#define BNEP_STATE_CONN_START 1
115#define BNEP_STATE_CFG_SETUP 2
116#define BNEP_STATE_CONN_SETUP 3
117#define BNEP_STATE_SEC_CHECKING 4
118#define BNEP_STATE_SETUP_RCVD 5
119#define BNEP_STATE_CONNECTED 6
122#define BNEP_FLAGS_IS_ORIG 0x01
123#define BNEP_FLAGS_HIS_CFG_DONE 0x02
124#define BNEP_FLAGS_MY_CFG_DONE 0x04
125#define BNEP_FLAGS_L2CAP_CONGESTED 0x08
126#define BNEP_FLAGS_FILTER_RESP_PEND 0x10
127#define BNEP_FLAGS_MULTI_RESP_PEND 0x20
128#define BNEP_FLAGS_SETUP_RCVD 0x40
129#define BNEP_FLAGS_CONN_COMPLETED 0x80
136 TIMER_LIST_ENT conn_tle;
139 UINT16 sent_num_filters;
140 UINT16 sent_prot_filter_start[BNEP_MAX_PROT_FILTERS];
141 UINT16 sent_prot_filter_end[BNEP_MAX_PROT_FILTERS];
143 UINT16 sent_mcast_filters;
144 BD_ADDR sent_mcast_filter_start[BNEP_MAX_MULTI_FILTERS];
145 BD_ADDR sent_mcast_filter_end[BNEP_MAX_MULTI_FILTERS];
147 UINT16 rcvd_num_filters;
148 UINT16 rcvd_prot_filter_start[BNEP_MAX_PROT_FILTERS];
149 UINT16 rcvd_prot_filter_end[BNEP_MAX_PROT_FILTERS];
151 UINT16 rcvd_mcast_filters;
152 BD_ADDR rcvd_mcast_filter_start[BNEP_MAX_MULTI_FILTERS];
153 BD_ADDR rcvd_mcast_filter_end[BNEP_MAX_MULTI_FILTERS];
155 UINT16 bad_pkts_rcvd;
173 tBNEP_CONNECT_IND_CB *p_conn_ind_cb;
174 tBNEP_CONN_STATE_CB *p_conn_state_cb;
175 tBNEP_DATA_IND_CB *p_data_ind_cb;
176 tBNEP_DATA_BUF_CB *p_data_buf_cb;
177 tBNEP_FILTER_IND_CB *p_filter_ind_cb;
178 tBNEP_MFILTER_IND_CB *p_mfilter_ind_cb;
179 tBNEP_TX_DATA_FLOW_CB *p_tx_data_flow_cb;
183 TIMER_LIST_ENT bnep_tle;
184 BOOLEAN profile_registered;
186 BOOLEAN got_my_bd_addr;
197#if BNEP_DYNAMIC_MEMORY == FALSE
200BNEP_API
extern tBNEP_CB *bnep_cb_ptr;
201#define bnep_cb (*bnep_cb_ptr)
206extern tBNEP_RESULT bnep_register_with_l2cap (
void);
207extern void bnep_disconnect (
tBNEP_CONN *p_bcb, UINT16 reason);
208extern tBNEP_CONN *bnep_conn_originate (UINT8 *p_bd_addr);
209extern void bnep_process_timeout (TIMER_LIST_ENT *p_tle);
210extern void bnep_connected (
tBNEP_CONN *p_bcb);
215extern tBNEP_CONN *bnepu_find_bcb_by_cid (UINT16 cid);
216extern tBNEP_CONN *bnepu_find_bcb_by_bd_addr (UINT8 *p_bda);
217extern tBNEP_CONN *bnepu_allocate_bcb (BD_ADDR p_rem_bda);
218extern void bnepu_release_bcb (
tBNEP_CONN *p_bcb);
219extern void bnepu_send_peer_our_filters (
tBNEP_CONN *p_bcb);
220extern void bnepu_send_peer_our_multi_filters (
tBNEP_CONN *p_bcb);
221extern BOOLEAN bnepu_does_dest_support_prot (
tBNEP_CONN *p_bcb, UINT16 protocol);
222extern void bnepu_build_bnep_hdr (
tBNEP_CONN *p_bcb,
BT_HDR *p_buf, UINT16 protocol,
223 UINT8 *p_src_addr, UINT8 *p_dest_addr, BOOLEAN ext_bit);
224extern void test_bnepu_build_bnep_hdr (
tBNEP_CONN *p_bcb,
BT_HDR *p_buf, UINT16 protocol,
225 UINT8 *p_src_addr, UINT8 *p_dest_addr, UINT8 type);
227extern tBNEP_CONN *bnepu_get_route_to_dest (UINT8 *p_bda);
229extern void bnep_send_command_not_understood (
tBNEP_CONN *p_bcb, UINT8 cmd_code);
230extern void bnepu_process_peer_filter_set (
tBNEP_CONN *p_bcb, UINT8 *p_filters, UINT16 len);
231extern void bnepu_process_peer_filter_rsp (
tBNEP_CONN *p_bcb, UINT8 *p_data);
232extern void bnepu_process_multicast_filter_rsp (
tBNEP_CONN *p_bcb, UINT8 *p_data);
233extern void bnep_send_conn_req (
tBNEP_CONN *p_bcb);
234extern void bnep_send_conn_responce (
tBNEP_CONN *p_bcb, UINT16 resp_code);
235extern void bnep_process_setup_conn_req (
tBNEP_CONN *p_bcb, UINT8 *p_setup, UINT8 len);
236extern void bnep_process_setup_conn_responce (
tBNEP_CONN *p_bcb, UINT8 *p_setup);
237extern UINT8 *bnep_process_control_packet (
tBNEP_CONN *p_bcb, UINT8 *p, UINT16 *len, BOOLEAN is_ext);
238extern void bnep_sec_check_complete (BD_ADDR bd_addr,
void *p_ref_data, UINT8 result);
239extern tBNEP_RESULT bnep_is_packet_allowed (
tBNEP_CONN *p_bcb, BD_ADDR p_dest_addr, UINT16 protocol, BOOLEAN fw_ext_present, UINT8 *p_data);
240extern UINT32 bnep_get_uuid32 (
tBT_UUID *src_uuid);
241extern void bnep_dump_status (
void);