[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: error messages and silently discarding packets



Hi all,


El 16/03/2007, a las 15:38, Brian E Carpenter escribió:

...
The question is whether we should use ICMP error message or if we should define a shim6 error message within the shim6 protocol Iljitsch suggested we do define such an error message, while the current spec uses ICMP error messages, what should we do?
In my opinion it depends whether the error messages are *necessary*
or whether they are only advisory.

If they are *necessary* for shim6 to function, that means they need
to arrive whatever ICMP filters are in place. So they would need to
be shim6 messages. If they aren't functionally necessary, ICMP
seems OK.

i have analyzed the different situations based on the criteria 
suggested by Brian
below i attach the criteria suggested by Brian and the analysis for the 
different cases.
my conclusion is that most of them are critical, so we should use a new 
shim6 error message for this, following Brian's criteria. What do 
others think?

Second, about silently discarding packets:
there are quite a few situations that the shim6 protocol silently discard packets that it considers an error or are not supported.
If the error messages are not functionally necessary, I suggest silent
discard as a SHOULD in all cases, with implementers allowed to implement
error messages as a configurable debug option.

they are not functionally necesary, since the protocol should be 
working fine wihtout them
do you think we should add some recomendation for the implementers that 
the can add error messages for debugging purposes?
Should we define a generic error message for debugging purposes?


analysis of the different cases below...


First, shim6 protocol sends a error message in the following situations:
- when a node receives a critical option that is not recognized. In order to do that, it sends an an ICMP parameter problem (type 4, code 1), with the Pointer referencing the first octet in the option Type field.
This one seems critical for shim6 to work properly, since the option is 
critical
- when the verification method in the locator list option is not 
supported, then the host MUST ignore the Locator List and the message 
in which it is contained, and the host SHOULD generates an ICMP 
parameter problem (type 4, code 0), with the Pointer referencing the 
octet in the Verification method that was found inconsistent.
This one seems critical for shim6 to work properly, since if the peer 
does nto support the verification method, the whole shim6 context is 
useless
- when a node receives a I1 packet and it doesn't support the shim6 
protocol, it sends a  ICMP error with "Unrecognized Next Header" type 
(type 4, code 1)
This one doesn't seem too critical for shim6 to work properly, since it 
will give up eventually

- If the Update message contains a Locator Preference option, then the Generation number in the preference option is compared with the peer generation number in the context. If they do not match, then the host generates an ICMP parameter problem (type 4, code 0) with the Pointer field referring to the first octet in the Generation number in the Locator Preference option. In addition, if the number of elements in the Locator Preference option does not match the number of locators in Ls(peer), then an ICMP parameter problem is sent with the Pointer referring to the first octet of the Length field in the Locator Preference option. In both cases of failures, no further processing is performed for the Locator Update message.
This one seems critical for shim6 to work properly, becuase, the 
locator lists may go out of sync

- If a node receives a packet that contains a shim message type which is unknown to the receiver, then an ICMPv6 Parameter Problem error is generated and sent back. The pointer field in the Parameter Problem is set to point at the first octet of the shim message type. The error is rate limited just like other ICMP errors [5].
This one may be critical for shim6 to work properly, depending on the 
message
So accroding to Brian's criteria, we shoudl define a shim6 error 
message.. what do others think?