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

Sébastien Vincent vincent at clarinet.u-strasbg.fr
Fri Feb 13 11:10:56 PST 2009


Tom Henderson a écrit :
> 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.

OK.

>
> 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.

rt6_info is for routing (=> Ipv6Route). 

The way I deal with many addresses by interface have not change from 
what I did with svnet.u-strasbg.fr's ns-3-ipv6 repository, so 
Ipv6InterfaceAddress which contains address, mask, scope (link-local, 
global, ...) and state (tentative, tentative optimistic, preferered, 
permanent, homeaddress, ...). Then Ipv6Interface which have a list of 
Ipv6InterfaceAddress.

I think we may do more than just adding address to interface. In fact 
there are not so many differences on routing stuff between IPv4 / IPv6 
just special handling for multicast link-local (For the moment in IPv6 
version of ns-3-ip, I do not pass by routing mechanism I directly sent 
or receive). For global multicast routing I think it works the same as 
IPv4 .
>
> 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.
>

OK

--
Sebastien

> - Tom
>




More information about the Ns-developers mailing list