In Cooja, I made two nodes, each using the rpl-border-router example configured to use RPL classic in storing and multicast mode, but with different default instance IDs and different prefixes. Both border routers connect to a Ubuntu host via tunslip. I have RPL logging set to DBG. Other than changing RPL_max_instances to 3, all configuration parameters are their defaults. I saw that uip configuration is set to act as a router by default, so it seems like that what I put together ought to allow passing data along the appropriate DAG based on the prefix and RPL instance. My reading of RFC 6550 Appendix A is that using separate prefixes is allowed.
When I run the simulation in Cooja, I see the nodes exchange DIOs, each joins the other's DAG, and each have IP addresses with both prefixes. However, if I ping from the host I don't get a ping response, but do see warnings from both nodes that a loop is detected. Is there something I am missing in my configuration to allow a root of one DAG in one instance participate as a child in a DAG on another instance? Have I misunderstood the intent of multiple instances?