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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.