In your previous mail you wrote: I see. When the mobile node has more than one pair of home_address-care_of_address, then it won't really know which one to pick. So, maybe, instead of exporting all this information to the apps and giving them the control, it might be better to enable the app to say "bind this socket to any address, preferably topologically correct (i.e., a CoA, or home address when at home)".
=> not, my idea is as the application cares about the source, connect a socket to the destination and look at the source selected by the kernel. For mobility I add look at the real source selected (i.e., a Co@), not only the visible source (i.e., the H@). Note that all applications using raw sockets have to setup themselves the source so this kind of code is not uncommon. > As first info is getsockname() for bound sockets, > I added a clone of getsockname() which returns the real source > address after MIPv6 processing. Or, don't change the getsockname(), => I didn't change it: it still returned the bound address, i.e., the H@ on a MN. but instead call mip_get_one_mobile_node() afterwards to identify if the address is bound to a care-of address. => the address is not bound to a Co@ but the BC lookup will push the bound address (the H@) to a H@O and a Co@ will replace it at the source (in the IPv6 header). The function should simulate the MIPv6 processing (aka BC lookup) and return its result on the source address. Note that this binding can dynamically any time, and subsequent mip_get_one_mobile_node() calls are sufficient to capture the changes. => yes, the result of this function should not be cached. Thanks [EMAIL PROTECTED] -------------------------------------------------------------------- IETF IPng Working Group Mailing List IPng Home Page: http://playground.sun.com/ipng FTP archive: ftp://playground.sun.com/pub/ipng Direct all administrative requests to [EMAIL PROTECTED] --------------------------------------------------------------------
