Plan 9 from Bell Labs’s /usr/web/sources/patch/applied/ipv6-through-gw/readme
This corrects ipv6.h to recognise global addresses as starting with the byte 0x20 instead of 0x02. I've tested it; it works.