MIPL Mobile IPv6 TODO list for 0.9.1

Known bugs and limitations of MIPL Mobile IPv6 implementation for
Linux:

General:

_ Hashlist does not work with multiple entries sharing the same key,
  this makes it impossible for MN to register multiple home addresses
 with the same HA or CN. Hashlist should be changed to support two
 hashkeys per entry to solve this. The same bug stops HA and CN
 sometimes from sending a BA in repsonse to a failed BU if a binding
 already exists for the home address.

- A fixed number of tunnels is created at startup in HA and MN and more
  tunnels can not be created on demand.
 
- Dynamic key establishment between MN and CN is missing. 

- Piggybacking of signaling options should be done only if packets
  have room for it.  We should wait a certain amount of time for a
  packet with enough space before sending an empty packet.  Currently
  a space of around 100 bytes is reserved in tcp_ipv6.c in all tcp
  packets for options.  A better idea is to reserve space only for
  home address option and piggyback BU and BA if there is enough
  space.

- PMTU should be adapted dynamically.  When MN moves away from home
  the pmtu for (idevs) routes should be adapted to allow room for home
  address option.  In CN (also HA): when a BU is received CN should
  create a new host route which would have a smaller pmtu to allow the
  use of routing header?  Problem: TCP and other transports should use
  a different PMTU than IP to allow for these changes.  Change the way
  the mss is calculated.  Make a function that can be called to check
  the tp->ext_hdr_len in tcp_ipv6.c. i.e., get_ext_hdr_len(struct sock
  sk *). This function would be called every time when mss is checked.
  ICMPV6_PKT_TOO_BIG results in checking of the mss and the problem
  will be resolved.
 
  MN should probably use a modified advmss as well. 

MN:

- MN sends a neighbour solicitation to its HA when it returns home for
  sending a BU using its home address as the source address.  Instead
  it should use unspecified address as the source. As a workaround MN
  can do without the NS if it receives a RA from HA

- MN sends BUs to previous routers, if they have the HA flag in their router 
  advertisements and renews the binding forever. MN should stop 
  sending the BUs at least when its old care-of address expires and
  clean up everything related to the expired address.

- Reverse tunneling is not implemented.  (work in progress)

- When MN is started in a foreign network, it should not do DAD in the
 foreign network for its home address, and it should not reply to
 neighbour discovery messages for its home address.



HA: 

- Proxy DAD for MN's home address is missing (draft section 9.1)
- HA (and CN) should have a certain window of acceptable sequence numbers fro BUs, now they check that the new seq. nr is larger modulo 256 than the previous one.

If you find more bugs or have ideas or patches please send them to the
MIPL mailing list: mipl@list.mipl.mediapoli.com.

Henrik Petander,
lpetande@tml.hut.fi





