MTU agree size on peers

Hi, 

We are working on nRF5340 with TF-M enabled and iOS application.

What we are observing is the peripheral device MTU TX and RX are configured to 512 bytes whereas the agreed MTU TX and RX are 293 and 508 respectively.

My questions are

  1. Why this difference in size (tx: 293, rx:508)?
  2. Who decides the MTU size, central or peripheral?
  3. What is the max MTU size any peripheral can support?

For reference below are the config used in the prj.conf file

CONFIG_BT_L2CAP_TX_MTU=512
CONFIG_BT_BUF_ACL_RX_SIZE=512
CONFIG_BT_BUF_ACL_TX_SIZE=512

Related