I use IPv6 on the iPhone and it is working fine on the WiFi - I have radvd (router advertisement deamon) in the router and iPhone gets configured automatically.
Problem is when I use VPN through the EDGE/3G to my router. It works good for IPv4 but ppp0 interface doesn't autoconfigure via router adverts. It has only link address fe80*** assigned. If I assign a global ipv6 address to the ppp0 and create a default route, everything works fine.
So my question is - why doesn't ppp0 autoconfigure using RAdvs while en0 does? I am sure I have radvd configured correctly for VPN connections as I can capture RAdvs and I can connect to it from a Linux box and it gets configured correctly.