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@...
>> [mailto:
ns-developers-bounces@...] Im Auftrag von Sébastien Vincent
>> Gesendet: Freitag, 24. Juli 2009 10:19
>> An: Tom Henderson
>> Cc:
ns-developers@...
>> 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
>>
>>
>
>