Lines Matching refs:packet
66 static void fragment_and_dispatch(BT_HDR *packet) { in fragment_and_dispatch() argument
67 assert(packet != NULL); in fragment_and_dispatch()
69 uint16_t event = packet->event & MSG_EVT_MASK; in fragment_and_dispatch()
70 uint8_t *stream = packet->data + packet->offset; in fragment_and_dispatch()
74 callbacks->fragmented(packet, true); in fragment_and_dispatch()
79 SUB_EVENT(packet->event) == LOCAL_BR_EDR_CONTROLLER_ID ? in fragment_and_dispatch()
84 uint16_t remaining_length = packet->len; in fragment_and_dispatch()
92 stream = packet->data + packet->offset; in fragment_and_dispatch()
96 packet->len = max_packet_size; in fragment_and_dispatch()
97 callbacks->fragmented(packet, false); in fragment_and_dispatch()
99 packet->offset += max_data_size; in fragment_and_dispatch()
101 packet->len = remaining_length; in fragment_and_dispatch()
104 stream = packet->data + packet->offset; in fragment_and_dispatch()
109 if (packet->layer_specific) { in fragment_and_dispatch()
110 packet->layer_specific--; in fragment_and_dispatch()
112 if (packet->layer_specific == 0) { in fragment_and_dispatch()
113 packet->event = MSG_HC_TO_STACK_L2C_SEG_XMIT; in fragment_and_dispatch()
114 callbacks->transmit_finished(packet, false); in fragment_and_dispatch()
120 callbacks->fragmented(packet, true); in fragment_and_dispatch()
127 static void reassemble_and_dispatch(UNUSED_ATTR BT_HDR *packet) { in reassemble_and_dispatch() argument
128 if ((packet->event & MSG_EVT_MASK) == MSG_HC_TO_STACK_HCI_ACL) { in reassemble_and_dispatch()
129 uint8_t *stream = packet->data; in reassemble_and_dispatch()
138 assert(acl_length == packet->len - HCI_ACL_PREAMBLE_SIZE); in reassemble_and_dispatch()
154 …LOG_WARN(LOG_TAG, "%s L2CAP packet too small (%d < %d). Dropping it.", __func__, packet->len, L2CA… in reassemble_and_dispatch()
155 buffer_allocator->free(packet); in reassemble_and_dispatch()
166 buffer_allocator->free(packet); in reassemble_and_dispatch()
170 if (full_length <= packet->len) { in reassemble_and_dispatch()
171 if (full_length < packet->len) in reassemble_and_dispatch()
172 …"%s found l2cap full length %d less than the hci length %d.", __func__, l2cap_length, packet->len); in reassemble_and_dispatch()
174 callbacks->reassembled(packet); in reassemble_and_dispatch()
179 partial_packet->event = packet->event; in reassemble_and_dispatch()
181 partial_packet->offset = packet->len; in reassemble_and_dispatch()
183 memcpy(partial_packet->data, packet->data, packet->len); in reassemble_and_dispatch()
192 buffer_allocator->free(packet); in reassemble_and_dispatch()
196 buffer_allocator->free(packet); in reassemble_and_dispatch()
200 packet->offset = HCI_ACL_PREAMBLE_SIZE; in reassemble_and_dispatch()
201 uint16_t projected_offset = partial_packet->offset + (packet->len - HCI_ACL_PREAMBLE_SIZE); in reassemble_and_dispatch()
204 packet->len = partial_packet->len - partial_packet->offset; in reassemble_and_dispatch()
210 packet->data + packet->offset, in reassemble_and_dispatch()
211 packet->len - packet->offset in reassemble_and_dispatch()
215 buffer_allocator->free(packet); in reassemble_and_dispatch()
225 callbacks->reassembled(packet); in reassemble_and_dispatch()