Issue 36: Handling UNACCEPTABLE_PATH
Tero Kivinen <[email protected]>
| Newsgroups | gmane.ietf.mobike |
|---|---|
| Message-ID | <[email protected]> |
Heeseon Lim writes: > There is a problem in case the UNACCEPTABLE_PATH is not for address in > the IP header but some other address pair. I mean the initiator sends > packet with IPA1, IPB1 N(CHANGE_PATH). That reaches the responder, but > he decides to send N(UNACCEPTABLE_PATH) back. The reply never reaches > the initiator because of uni-directional connection or something. The > initiator retransmits the packet with IPA2, IPB2 N(CHANGE_PATH). This > would be ok for the responder, but as he has already generated the > reply N(UNACCEPTABLE_PATH) he will retransmit that back. This will > reach the initiator and he will be receiving wrong information which > path was unacceptable. > > ************************** > I could not quite understand this. Why would the responder send the > reply N(UNACCEPTABLE_PATH) to the request with the new address pair? I Because the message ID is same and once a request or reply for that message id is generated it must be retransmitted without any modifications. > think the responder should check the IP address to see if this is > acceptable, and send the response according to this check. If the > new address pair is ok, then it should snot send the > N(UNACCEPTABLE_PATH). That would be ok, if this would be the different message, but as it could be retransmission of the same message it must be sent back simlarly than before. Lets take example. We have ip-addresses of A1, A2, B1, and B2, and the responder feels that A1 is not allowed because of the policy. Now A sends update. Initiator Responder ========= ========= (A1, B1) N(CHANGE_PATH), N(COOKIE2) -> Responder notices that the header has A1, so he decides to send N(UNACCEPTABLE_PATH) back. lost <- (B1, A1) N(UNACCEPTABLE_PATH) The N(UNACCEPTABLE_PATH) from responder was lost because of unidirectional link. A retransmits the packet: (A1, B1) N(CHANGE_PATH), N(COOKIE2) -> B sees retranmissions, and replies with the retransmission packet. lost <- (B1, A1) N(UNACCEPTABLE_PATH) The N(UNACCEPTABLE_PATH) is still lost. A notices he is not getting packets back, so he decides to try to use some other IP-address: (A1, B2) N(CHANGE_PATH), N(COOKIE2) -> B retransmits its previous packet. lost <- (B2, A1) N(UNACCEPTABLE_PATH) A tries again: (A2, B2) N(CHANGE_PATH), N(COOKIE2) -> B retransmits its previous packet. <- (B2, A2) N(UNACCEPTABLE_PATH) Now the A do receive the packet and notices that the path was unacceptable, but he does not know which path was unacceptable: (A1, B1), (A1, B2) or (A2, B2). It could have been so that the (A1, *) packets never reached the responder, and only thie (A2, B2) packet reached the responder, and that path was unacceptable, or it could be like now that the (A1, B1) path was unacceptable. -- [email protected]