[Ns-developers] ipv6 plans for ns-3

Sébastien Vincent vincent at clarinet.u-strasbg.fr
Thu Jul 30 11:45:39 PDT 2009


Hi all,

New features:
- RA handler to autoconfigure address and default route;
- Radvd application made scratch (not reused radvd stuff from ns-3-ipv6 
old repository);
- Two new examples: radvd and radvd-two-prefix. The last ones advertise 
two prefixes in RA.

By the way I added in Ipv6RoutingProtocol, two methods for adding 
routes. It is needed for ICMPv6 redirect (which add a host route to 
redirected target), and to configure the default route when receive 
first RA's prefix: NotifyAddRoute and NotifyRemoveRoute.

To summarize what is done now in 
https://svnet.u-strasbg.fr/hg/ns-3-ipv6-2nd:
- IPv6 interface;
- IPv6 layer;
- IPv6 raw socket;
- Static IPv6 routing;
- ICMPv6 layer;
- Some ICMPv6 error messages (destination unreachable, ...);
- Neighbor Discovery Protocol (NS/NA, RS/RA, redirection);
- Ping6 application (send Echo  request);
- Radvd application (send RA);
- Examples (ping6, simple-routing-ping6, radvd, radvd-two-prefix, 
icmpv6-redirect).

My holidays ends by monday, as I already said I will not have much time 
to work on ns-3 after.

I think that we can first review current work and give feedback. And 
maybe try to merge it before continue to work on UDP/TCP. It will be 
great to finally enable ns-3 users to begin make IPv6 simulations with 
ICMPv6 in next ns-3 release.

Best regards,
--
Sebastien Vincent

Sébastien Vincent a écrit :
> Hi all,
>
> Here the latest news about ns-3-ipv6-2nd:
>
> - Move some link-local routing handling from Ipv6L3Protocol to 
> Ipv6Static|ListRouting;
> - Routing has been tested;
>
>  => by the way I find an error in IPv4's 
> src/routing/static-routing/ipv4-static-routing.cc, line 261 about 
> default route:
>         rtentry->SetSource (SourceAddressSelection (interfaceIdx, 
> route->GetDest ()));
>
>         It should be route->GetGateway(). In case of a default route 
> route->GetDest() is 0.0.0.0.
>
> - By default all nodes is IPv6 host (Ipv6::IpForward attribute false 
> now) => RS will be sent after DAD for host;
> - SetRouter function in Ipv6InterfaceContainer => RS will not be sent 
> on interface which have forwarding enabled;
> - Routing example (examples/simple-routing-ping6.cc);
> - Modify ping6 example to send an echo request to all-nodes (ff02::1);
> - Basic unit test in src/internet-stack/ipv6-test.cc;
> - Function() => Function () style.
>
> Regards,
> -- 
> Sebastien
>
> Fabian Mauchle a écrit :
>> Hi all
>>
>> -----Ursprüngliche Nachricht-----
>> Von: ns-developers-bounces at ISI.EDU 
>> [mailto:ns-developers-bounces at ISI.EDU] Im Auftrag von Sébastien Vincent
>> Gesendet: Freitag, 24. Juli 2009 10:19
>> An: Tom Henderson
>> Cc: ns-developers at ISI.EDU
>> Betreff: Re: [Ns-developers] ipv6 plans for ns-3
>>
>> In old ns-3-ipv6 repository, we made an application (radvd) to send 
>> router advertisements (RA). We did it to mimic Linux, but it could be 
>> also interresting if somebody wants to put extension to RA like for 
>> example DNS servers information (RFC 5006) => no changes to IPv6 
>> stack itself just the application. What do you think ?
>>
>>  
>>>> As you see many files have been copy/paste/adapt, but for the 
>>>> routing part I think it will have some changes.
>>>>
>>>> Next steps are :
>>>> - handle link-local multicast in routing part;
>>>> - handle Router Advertisement (receive, parse, extract prefix and 
>>>> autoconfigured global address with it + timer);
>>>> - radvd application like;
>>>>       
>>> - I am guessing that the DAD stuff commented out in 
>>> icmpv6-l4-protocol.cc can be enabled once the router advertisements 
>>> are enabled?  Maybe we can avoid to merge these commented out code 
>>> blocks until then.
>>>     
>>
>> DAD is working and router solicitation (RS) is also sent after DAD is 
>> completed. But like all nodes start at the same time, they do their 
>> DAD and sent RS at approximately 1 second of simulation time, so a 
>> lot of messages at the beginning of the simulation. We think about 
>> this last year and solution was to temporary disable sending RS. As 
>> radvd application can be configured to sent periodically RA the 
>> problem is not very important for static nodes but for Mobile IPv6 
>> ones it is critical to have an address quickly and not wait for next 
>> period of RA sending.
>> --------------
>>
>> During my study and simulation (based on the old ns-3-ipv6) of Mobile 
>> IPv6 (RFC 3775) I found the following:
>>
>> - The DAD and RS messages at the beginning was no problem. I usually 
>> start the applications some seconds into the simulation, and give the 
>> network time to 'organize' itself (do the DAD stuff...). - When 
>> thinking about Mobile Nodes, it is basically important that there is 
>> a configurable radvd application. For Mobile IPv6, it is recommended 
>> to send RA's every 30-70ms to help Mobile Nodes get an address 
>> quickly. The radvd application in the old repo did this job 
>> perfectly. Nevertheless, Mobile IPv6 is not defined to be fast or 
>> fulfill any QoS requirements. So it's not that critical. - For fast 
>> moving Mobile Nodes which eg. have a running VoIP session, other 
>> methods like Media Independent Handover are needed to be fast enough. 
>> Basically, for this scenario, the address configuration is not the 
>> basic problem, but updating the Mobile Node's location and 
>> redirecting its traffic.
>>
>> So, from My point of view, I would keep the DAD behavior as it was in 
>> the old repo. I would also keep the radvd application. Maybe it's 
>> configuration could be simplified.
>>
>> Regards
>> Fabian
>>
>>   
>
>



More information about the Ns-developers mailing list