Hi,
I think multipath over device routes for ipv6 requires using new nexthop objects. Here is an example:
# ip link add name a type dummy
# ip link add name b type dummy
# ip link set dev a up
# ip link set dev b up
# ip -6 route add fc00:0::/32 dev a
# ip -6 route add fc00:1::/32 dev b
# ip -6 route add fc00:2::/32 nexthop dev a
Error: Device only routes can not be added for IPv6 using the multipath API.
# ip -6 route add fc00:3::/32 nexthop dev a nexthop dev b
Error: Device only routes can not be added for IPv6 using the multipath API.
# ip -6 nexthop add id 100 dev a
# ip -6 nexthop add id 101 dev b
# ip nexthop add id 102 group 100/101
# ip -6 route add fc00:4::/32 nhid 102
# ip -6 route list
fc00::/32 dev a metric 1024 pref medium
fc00:1::/32 dev b metric 1024 pref medium
fc00:4::/32 nhid 102 metric 1024 pref medium
nexthop dev a weight 1
nexthop dev b weight 1
fe80::/64 dev a proto kernel metric 256 pref medium
fe80::/64 dev b proto kernel metric 256 pref medium
# sysctl -w net.ipv4.nexthop_compat_mode=0
net.ipv4.nexthop_compat_mode = 0
# ip -6 route list
fc00::/32 dev a metric 1024 pref medium
fc00:1::/32 dev b metric 1024 pref medium
fc00:4::/32 nhid 102 metric 1024 pref medium
fe80::/64 dev a proto kernel metric 256 pref medium
fe80::/64 dev b proto kernel metric 256 pref medium
# ip nexthop list
id 100 dev a scope link
id 101 dev b scope link
id 102 group 100/101