Additional Complexity due to multiple protocol families OS kernel support and applications support are usually separate Need to ship a single binary that works on IPv6-enabled and IPv6-disabled kernel AF_INET6 support may not be there A support nightmare IPv4 kernel + IPv4 userland IPv4 kernel + IPv4/v6 dual stack userland IPv4/v6 kernel + IPv4/v6 dual stack userland IPv4 kernel + IPv4/v6 dual stack userland "IPv6 code is present but not configured" case no IPv6 router, for instance Solution: Application should handle both IPv4 and IPv6 without problem, even without kernel support Remove any code that assumes AF_INET Do not add any code that hardcodes AF_INET6