[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