...layer 2 and 3 with 802.3ad mode should do fine.
However, balancing accross all interfaces of the bond can only happen if the application (typically the client side, initiating the connection) uses multiple threads/connections (and hence multiple ports - as IP and MAC will stay the same) for transfer.
SMB connections aresingle threaded, so this will not happen...use another protocol.
You can use iperf3 for testing....use the "-P x" parameter for the client, where X is the number of concurrent threads/connections to be used.
Edit: of course, for multiple concurrent sessions from different MACs/IPs/ports - like a number of users concurrently accessing a Service, like a NAS, balancing accross all interfaces will work as well - for the same reason stated above.
topology
ccr1036 ------------------> cr326 ---------------------------> crs326 --------------------------> olt
bonding (vlan) truck 10g truck 10g
Within the bonding I carry ula vlan which is the one that takes the service to customers through pppoe