diff --git a/src/l2cap.c b/src/l2cap.c index 5f4753abd..01e3b07d4 100644 --- a/src/l2cap.c +++ b/src/l2cap.c @@ -48,8 +48,6 @@ #include -#define L2CAP_HEADER_SIZE 4 - // size of HCI ACL + L2CAP Header for regular data packets (8) #define COMPLETE_L2CAP_HEADER (HCI_ACL_DATA_PKT_HDR + L2CAP_HEADER_SIZE) diff --git a/src/l2cap.h b/src/l2cap.h index dce7ab0eb..750ced899 100644 --- a/src/l2cap.h +++ b/src/l2cap.h @@ -50,6 +50,8 @@ extern "C" { #define L2CAP_SIG_ID_INVALID 0 +#define L2CAP_HEADER_SIZE 4 + void l2cap_init(void); void l2cap_register_packet_handler(void (*handler)(void * connection, uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size)); void l2cap_create_channel_internal(void * connection, btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu); diff --git a/src/rfcomm.c b/src/rfcomm.c index 97e7aea80..bedec40c9 100644 --- a/src/rfcomm.c +++ b/src/rfcomm.c @@ -75,7 +75,7 @@ #define BT_RFCOMM_TEST_CMD 0x23 #define BT_RFCOMM_TEST_RSP 0x21 -#define RFCOMM_MAX_PAYLOAD (HCI_ACL_BUFFER_SIZE-HCI_ACL_DATA_PKT_HDR) +#define MAX_L2CAP_PAYLOAD (HCI_ACL_BUFFER_SIZE-L2CAP_HEADER_SIZE) #define RFCOMM_MULIPLEXER_TIMEOUT_MS 60000 // FCS calc @@ -95,7 +95,7 @@ static linked_list_t rfcomm_channels = NULL; static linked_list_t rfcomm_services = NULL; // used to assemble rfcomm packets -uint8_t rfcomm_out_buffer[RFCOMM_MAX_PAYLOAD]; +uint8_t rfcomm_out_buffer[MAX_L2CAP_PAYLOAD]; static void (*app_packet_handler)(void * connection, uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); @@ -195,7 +195,7 @@ static void rfcomm_multiplexer_initialize(rfcomm_multiplexer_t *multiplexer){ // - Max RFCOMM header has 6 bytes (P/F bit is set, payload length >= 128) // - therefore, we set RFCOMM max frame size <= Local L2CAP MTU - 6 - multiplexer->max_frame_size = RFCOMM_MAX_PAYLOAD - 6; // max + multiplexer->max_frame_size = MAX_L2CAP_PAYLOAD - 6; // max } static rfcomm_multiplexer_t * rfcomm_multiplexer_create_for_addr(bd_addr_t *addr){ @@ -1638,7 +1638,7 @@ void rfcomm_create_channel_internal(void * connection, bd_addr_t *addr, uint8_t channel->state = RFCOMM_CHANNEL_W4_MULTIPLEXER; - l2cap_create_channel_internal(connection, rfcomm_packet_handler, *addr, PSM_RFCOMM, RFCOMM_MAX_PAYLOAD); + l2cap_create_channel_internal(connection, rfcomm_packet_handler, *addr, PSM_RFCOMM, MAX_L2CAP_PAYLOAD); return; } @@ -1674,7 +1674,7 @@ void rfcomm_register_service_internal(void * connection, uint8_t channel, uint16 // register with l2cap if not registered before if (linked_list_empty(&rfcomm_services)){ - l2cap_register_service_internal(NULL, rfcomm_packet_handler, PSM_RFCOMM, RFCOMM_MAX_PAYLOAD); + l2cap_register_service_internal(NULL, rfcomm_packet_handler, PSM_RFCOMM, MAX_L2CAP_PAYLOAD); } // fill in