Subject: Re: [manet] DLEP-17: Failure processing

From: Rick Taylor <[email-masked]>
Date: Wed, 9 Mar 2016 10:32:55 +0000

All,

Just a quick comment inline...

On 09/12/15 19:52, Lou Berger wrote:
> Authors/WG,
>
> DLEP-17 describes  Error handling in terms of a fixed "Failure Mode",
> See Table 3.  I like this formalization of something that was previously
> implicit.  I'd like to suggest going on step further by making
> Terminate|Continue explicit in the Status data item.  This will both
> ease initial implementation and facilitate forward compatibility.
>
> To be clear: I'm proposing adding a flags field to the Status data item:
>
>      0                   1                   2                   3
>      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>     | Data Item Type                | Length                        |
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>     |T|  Reserved   | Status Code   | Text...                       :
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
> With a definition of
>     T (1-Bit): When set, indicates that the session MUST be
>     terminated upon receipt of the containing message.
>
>     Reserved (7-bits): MUST be set to zero by sender and ignored by
>                        receiver.
>
> Length also changes to 2 + length of the text field.
>

In draft-20 we have defined the behaviour (Terminate/Continue) of a 
status code to be associated with its value: <100 Terminate >=100 Continue.

However, I am considering moving the <128 Continue, >= 128 Terminate, as 
that keeps Success with value 0 as continue, and also aligns with Lou's 
suggestion of a Terminate bit.

Thoughts?

Rick

---

From: Lou Berger <[email-masked]>
Date: Wed, 9 Mar 2016 06:58:21 -0500

The only real difference between the approaches is the effective number
of available error codes.  256 at first seemed like a lot, but 100 of a
particular type 'feels' constrained.  Given that these bits are 'cheap'
at the moment I'd recommend making the status field 1 or 2 bits larger
so that error code space is never an issue.

Lou

---

From: Rick Taylor <[email-masked]>
Date: Wed, 9 Mar 2016 13:44:02 +0000

> so that error code space is never an issue.

I agree that there's no real difference, but given we have 255 status 
codes, and two failure modes (Terminate or Continue), it makes sense to 
split them 0..127 Continue, 128..255 Terminate.

Currently we have 3 'continue' codes, and 5 'terminate' codes, so we 
aren't running out of number space yet!

As an aside - I personally hate 'wide' error codes, the UNIX approach of 
errno having a few generic values is just much more manageable from an 
interop perspective than the Windows approach of 32-bit codes banked by 
system module.  So any extension drafts which introduce a 100 new status 
codes will get my thumbs down.

Compare:
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681381(v=vs.85).aspx

Rick

---

From: Lou Berger <[email-masked]>
Date: Wed, 09 Mar 2016 09:01:22 -0500

Okay. Wfm.

Lou