Hello,

While running my test suite on MIPL 2.0.1 on Linux kernel 2.6.15.6, I encounter the problem described below. Does anyone else see a similar behaviour?


The setup is the following:
- 3 nodes, all running MIPL 2.0.1: 1 MN, 1 HA, 1 CN
- CN is in Home Link
- HA is the gateway between Foreign Link and Home Link
- MN moves from Home Link to Foreign Link and then comes back home
- MN Home address is 2000::ff/64, CoA is 2101::2c0:9fff:febf:12da
- CN address is 2000::cc/64

 Home Link (2000::/64)             Foreign Link (2101::/64)

-------------------------[HA]...[R1]----------------------
         |         2000::1
       [CN]
       2000::cc


1) MN starts on Home Link and establish UDP and TCP connections with
   CN.
2) MN moves on Foreign Link:
   - It registers its new CoA with HA and negociates RO with CN
   - All is great, the traffic between MN and CN is "route optimized"
3) MN comes back home:
   - It de-register its CoA with HA: success
   - It now wants to send a BU to its CN to tell him is back home
      -  It sends a Neighbour Solicitation to learn CN address
         BUT it sends this NS with its global Home Address as the
         source address instead of its link local address.
      -> As a consequence, when CN, wants to send it Neighbour
         Advertisement, it maps the Home Address to the registered
         Care-of-Address for MN, and the NA goes to the foreign link
      -> MN never get the NA and can't send the BU
      -> Communications between MN and CN is broken (as CN continues
         to use the CoA) until the Binding Cache entry expires in CN.

Summary:
--------
When CN is in Home Link and When MN comes back home and wants to send a NS to CN, it seems source address selection is broken. It should select a link-local address not the global home address.

An ethereal capture is available here:
(To avoid pollution by TCP and UDP data packets use the following filter in ethereal: not udp and not tcp)

- MN comes back home after 39 seconds.
- BU for de-registration is sent after 42s (packet 956).
- Bad NS packet  : packet 978 (43.24 seconds)
- Resulting bad NA packet : packet 979
- Binding Cache must have expired after packet 1464
- Next NS/NA exchange works: packets 1493 and 1494
- MN finally managed to send its BU in packet 1555,
  40 seconds after it came back home.

Does anyone see the same behaviour on their testbed?

Thanks,
Benjamin






--
B e n j a m i n   T h e r y  - BULL/DT/Open Software R&D

   http://www.bull.com

_______________________________________________
mipl mailing list
[email protected]
http://www.mobile-ipv6.org/cgi-bin/mailman/listinfo/mipl

Reply via email to