mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-01-12 15:47:14 +00:00
document hci_read_buffer_size result, better docuement l2cap mtu handling
This commit is contained in:
parent
c68bdf905b
commit
1d279b2064
@ -351,6 +351,7 @@ static void event_handler(uint8_t *packet, int size){
|
|||||||
if (COMMAND_COMPLETE_EVENT(packet, hci_read_buffer_size)){
|
if (COMMAND_COMPLETE_EVENT(packet, hci_read_buffer_size)){
|
||||||
// from offset 5
|
// from offset 5
|
||||||
// status
|
// status
|
||||||
|
// "The HC_ACL_Data_Packet_Length return parameter will be used to determine the size of the L2CAP segments contained in ACL Data Packets"
|
||||||
hci_stack.acl_data_packet_length = READ_BT_16(packet, 6);
|
hci_stack.acl_data_packet_length = READ_BT_16(packet, 6);
|
||||||
// ignore: SCO data packet len (8)
|
// ignore: SCO data packet len (8)
|
||||||
hci_stack.total_num_acl_packets = packet[9];
|
hci_stack.total_num_acl_packets = packet[9];
|
||||||
|
12
src/l2cap.c
12
src/l2cap.c
@ -240,11 +240,11 @@ void l2cap_create_channel_internal(void * connection, btstack_packet_handler_t p
|
|||||||
// TODO: emit error event
|
// TODO: emit error event
|
||||||
if (!chan) return;
|
if (!chan) return;
|
||||||
|
|
||||||
// validate mtu
|
// limit local mtu to max acl packet length
|
||||||
if (hci_max_acl_data_packet_length() < mtu) {
|
if (mtu > hci_max_acl_data_packet_length()) {
|
||||||
mtu = hci_max_acl_data_packet_length();
|
mtu = hci_max_acl_data_packet_length();
|
||||||
}
|
}
|
||||||
|
|
||||||
// fill in
|
// fill in
|
||||||
BD_ADDR_COPY(chan->address, address);
|
BD_ADDR_COPY(chan->address, address);
|
||||||
chan->psm = psm;
|
chan->psm = psm;
|
||||||
@ -461,8 +461,8 @@ static void l2cap_handle_connection_request(hci_con_handle_t handle, uint8_t sig
|
|||||||
channel->local_mtu = service->mtu;
|
channel->local_mtu = service->mtu;
|
||||||
channel->remote_mtu = L2CAP_DEFAULT_MTU;
|
channel->remote_mtu = L2CAP_DEFAULT_MTU;
|
||||||
|
|
||||||
// validate mtu
|
// limit local mtu to max acl packet length
|
||||||
if (hci_max_acl_data_packet_length() < channel->local_mtu) {
|
if (channel->local_mtu > hci_max_acl_data_packet_length()) {
|
||||||
channel->local_mtu = hci_max_acl_data_packet_length();
|
channel->local_mtu = hci_max_acl_data_packet_length();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -529,8 +529,6 @@ void l2cap_signaling_handle_configure_request(l2cap_channel_t *channel, uint8_t
|
|||||||
pos += length;
|
pos += length;
|
||||||
}
|
}
|
||||||
uint8_t identifier = command[L2CAP_SIGNALING_COMMAND_SIGID_OFFSET];
|
uint8_t identifier = command[L2CAP_SIGNALING_COMMAND_SIGID_OFFSET];
|
||||||
// send back received options
|
|
||||||
// l2cap_send_signaling_packet(channel->handle, CONFIGURE_RESPONSE, identifier, channel->remote_cid, 0, 0, len-4, &command[8]);
|
|
||||||
// send back OK
|
// send back OK
|
||||||
l2cap_send_signaling_packet(channel->handle, CONFIGURE_RESPONSE, identifier, channel->remote_cid, 0, 0, 0, NULL);
|
l2cap_send_signaling_packet(channel->handle, CONFIGURE_RESPONSE, identifier, channel->remote_cid, 0, 0, 0, NULL);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user