[Ns-developers] IPv6 extension support

Sebastien Vincent vincent at clarinet.u-strasbg.fr
Wed Nov 4 05:10:45 PST 2009


Hi Tom,

Tom Henderson a écrit :
> Sebastien Vincent wrote:
>> Hi,
>>
>> Here is the repository for IPv6 extension support: 
>> http://svnet.u-strasbg.fr/hg/ns-3-ipv6-ext/
>>
>> It contains two new examples:
>> - fragmentation-ipv6, a node sends packets > MTU, packets are 
>> fragmented in IPv6 stack;
>> - loose-routing-ipv6, a node sends special ICMPv6 which have IPv6 
>> routing header type 0 (it choose the router path).
>>
>> There are some stuff that could/have to be enhanced:
>> - In ipv6-static-routing.cc, class Ipv6LooseRoutingExtension send 
>> directly the packets instead of passing up to Ipv6L3Protocol and it 
>> need Ipv6StaticRouting object to have a lookup (StaticLookup) in 
>> routing table (I don't need LocalDeliver/IpForward, ... callbacks). 
>> To do this I copy code from Ipv6RoutingHelper to get 
>> Ipv6StaticRouting object from Ipv6L3Protocol::GetRoutingProtocol. So 
>> we have the following choices:
>>  - include an helper class in stack (not sure it is good);
>>  - refactor to pass processed packets with routing header in IPv6 
>> stack (tag, ...);
> Can the RouteInput method demux the routing headers (without tag) and 
> forward on the routing header instead of the IPv6 header, since it 
> gets the packet?  I am suspicious of putting in these static routing 
> methods because it may not be static routing that is operating on the 
> packet. It seems to me that routing headers can be processed from 
> within RouteInput, and destination headers can be processed in 
> LocalDeliver.

The routing extension are  processed in a local delivered packet, see 
RFC2460 section 4.4 :

 A Routing header is not examined or processed until it reaches the
   node identified in the Destination Address field of the IPv6 header.



>
>>  - add a virtual method in Ipv6RoutingProtocol that just look in 
>> routing table for a destination (stuff like RouteInput() with no 
>> callback) and returns a route.
> Can RouteOutput() be used for these use cases?

Oh I forget this method... yes it could work, I will test it.

Regards,
--
Sebastien

>
> - Tom
>
>



More information about the Ns-developers mailing list