When writing an application to act as a Gatt server using Bluez's DBus API, the MTU given by calls to the ReadValue and AcquireNotify commands report the MTU as 517.
The maximum size of the data channel payload 251 bytes (27 without the Data length extension). Because of the 4 byte L2CAP header, we are left with a max MTU of 247.
Is the ATT_MTU independent of the link layer's data length limit? Is the data fragmented across a lower level and if so, what is the maximum ATT_MTU?