CAN FD is now well defined and used. Automotive industry already uses it or will use it soon, so there is a need for the low-can binding to be able to handle it well.
About now, not every ECUs in a vehicle would use CAN FD to communicate, so there will be a cohabitation between non FD and FD ECU capable devices. The "low-can" binding uses signals JSON definition to describe CAN buses communication, so a new key is introduced on a CAN message to set it as an FD CAN message or not. By default, a message would use the classic format.
As socketcan already implement compatibility with CAN FD, the binding continues to use it through BCM socket, and open FD BCM Socket capable when a message is defined as CAN FD and a classic BCM Socket if not. Also, communication relies on CAN struct which differs according to the protocol used.