[Ns-developers] Does NS2 /NS3 support IPv6 ?

Tom Henderson tomh at tomh.org
Fri Feb 13 10:11:47 PST 2009


Sébastien Vincent wrote:
> Bahareh_ntc at yahoo.com a écrit :
>> Hi Dear all,
>>
>>
>> I read recently about NS3 and I saw the initial step of "IPv6 enable " 
>> was started by December 2008. So any idea ?
>>   
> 
> More IPv6 stuff in ns-3 is planned after IPv4 refactoring will be merged 
> (ns-3.4 or ns-3.5).
> For a complete ns-3 "IPv6 enabled" but with an obsolete version of ns-3 
> (3 month ago version) see https://svnet.u-strasbg.fr/hg/ns-3-ipv6/.
> 
> I have also started IPv6 integration in Tom Henderson's "IPv4 
> refactoring" repository (http://code.nsnam.org/tomh/ns-3-ip/) but for 
> the moment I have absolutely no time to polish it and made it public on 
> code.nsnam.org.
> 
> I think IPv6 support in ns-3 (ICMPv6, neighbor discovery, routing, UDP 
> and some applications) could be ready for ns-3.5.
> 
> Regards,
> 
> -- 
> Seb
> 

Sebastien,

Here are some more details of what I am working on now, and how it 
relates to IPv6.

I think there are a few more issues to iron out for IPv4 stack and they 
each relate to IPv6 in some way.

1) virtual net devices.  A lot of current research on IPv6 involves IPv6 
transition using tunnels over IPv4 networks, so I would like to make 
sure that we get this right so that people can easily build such 
topologies.

2) I am working on finishing the IPv4 multicast routing implementation 
which uses virtual interfaces also, but I haven't had a chance to look 
at IPv6 multicast implementation and whether allowance needs to be made 
for these virtual interfaces to be IPv6-capable, or whether it is done 
differently.

3) We do not have any public interface into the ARP tables for IPv4.  Of 
course in IPv6, neighbor discovery provides a superset of ARP and it 
would be nice if we had some type of API coherency for these two things. 
  I haven't looked at this yet.

I was thinking, for starters, to try to add IPv6 addresses to 
interfaces.  For IPv4, I aligned things with how struct in_device stores 
possibly multiple struct in_ifaddrs; this became class 
Ipv4InterfaceAddress.  The equivalent for IPv6 seems to be struct 
rt6_info, so I was wondering whether we might define a class 
Ipv6InterfaceAddress similarly, based on struct rt6_info.

Once the IPv4 implementation seems mostly complete, it will be 
productive to try to review it from the standpoint of IPv6 and see 
whether the alignment is good.

- Tom


More information about the Ns-developers mailing list