Hi Xavier:

Since your email suggested the 802.15.4e-2012 spec is ambiguous, I thought to check.

According to the 15.4e spec, the value of the IE List Present field in the FCF signals whether or not IEs are included in the frame (see Clause 5.2.11.5b). Header and Payload IEs can be distinguished via the Type field (bit 15: set to zero if Header IE; set to one otherwise) and are self-contained TLV data objects (see Clauses 5.2.4.2 and 5.2.4.3).

Note that IEs should only be processed at receipt after successful incoming frame security processing (i.e., IEs can be assumed to be available in the clear for this discussion).

From this, it follows that one can easily find the demarcation line between Header and Payload IEs if both are present (simply parse the frame). Moreover, the set of Header IEs can be uniquely determined, without requiring a special termination symbol. If there are no Payload IEs, Header IEs may have the same syntax as the leftmost segment of the MAC payload field (with Data frames, Beacon frames, ACK frames, and even for Command frames [despite of the Command Type octet preceding the remainder of the payload]). Hence, one needs a termination symbol ('comma symbol') to make sure one can unambiguously parse this. Independent of presence of Header IEs, Payload IEs again can have the same syntax as leftmost segments of the MAC payload and therefore requiring a termination symbol ('comma' symbol).

For incoming security processing, one needs to be able to distinguish the frame fields that constitute the 'm' field and the 'a' field in the CCM mode of operation. If Header IEs are present, this does require a termination symbol ('comma symbol'), since the encrypted payload field has a chance of having the same syntax.

In summary,
- if security is enabled, Header IEs require a termination symbol (so as not to confuse incoming security processing). This even holds if there are no Header IEs (since the encrypted payload may still look like a Header IEs); - Payload IEs require a termination symbol (so as not to cause leftmost segment of payload data to be confused with payload IEs). This holds even if there are no Payload IEs and holds irrespective of whether security is enabled.

So, if there are IEs (as indicated by the IE List Present field), one has
a) Header IEs present, Payload IEs present: need for termination symbol for Header IEs, if security enabled; need for termination symbol for Payload IEs if confusion with remainder payload possible. [2 "terminators" if security enabled; 1 if unsecured frame with payload (4-octet overhead w/ security; o.w., 2-octets)] b) Header IEs present, Payload IEs not present: need for termination symbol for Header IEs if security enabled; need for termination symbol for (empty set of) Payload IEs if confusion with remainder payload possible. [2 "terminators" if security enabled; 1 if unsecured frame with payload (4-octet overhead w/ security; o.w., 2-octets)] c) Header IEs not present, Payload IEs present: need for termination symbol for Header IEs if security enabled; need for termination symbol for Payload IEs if confusion with remainder payload possible. [2 "terminators" if security enabled; 1 if unsecured frame with payload (4-octet overhead w/ security; o.w., 2-octets)]

It is quite a pity that the IE termination symbols eat up so much per-frame space, since this could easily have been avoided, e.g., if it had been defined as follows: - have IEs start with ID field, which would allow defining termination symbols as 0xff (both for Payload and Header IEs), thus saving 2-octets per frame in most cases; -have IEs codify length, so as to allow unambiguously determining how many Payload IEs actually follow, thus saving a Payload termination symbol. {This would have allowed 1-byte "terminators" in total with security and none at all, with careful design.}

Perhaps, removing some of the waste can be funneled back to 802.15.4rev?


On 6/16/2015 12:39 PM, Xavier Vilajosana wrote:
Hi Jose,

when writing the draft we consulted one of the authors of 15.4e about the same issue. His answer said that the original intent when the spec was drafted was that the termination IE was only required when a header IE was followed by something. The problem is, if we get a frame with no header IE, how do we know what follows is a payload IE, or it is just payload that looks like a payload IE? In 15.4, where any frame could come at any time, we need a header terminator to tell us how to parse the rest of the packet.

so that is the reason for having it there. Any thoughts?

regards,
Xavi

2015-06-16 16:56 GMT+02:00 Thomas Watteyne <[email protected] <mailto:[email protected]>>:

    Jose,

    I believe you need to add a header termination IE before sending a
    payload IE. This was pointed out during our recent discussion;
    I'll let the authors confirm.

    The specs for the plugtest have been distributed on the plugtest
    ML, please contact me offline if you didn't receive them.

    Thomas

    On Tue, Jun 16, 2015 at 9:18 AM, José Ángel Miranda
    <[email protected] <mailto:[email protected]>> wrote:

        Hi,

        Looking at the new minimal conf (07- 08 - 09), we have
        observed in the IEs example with and without security that a
        termination Header IE, indicating Payload IE coming next, is
        added. We would like to know where, within the standard, this
        is described, or if you have taken this configuration due to
        any specific reason. Actually, there is no need to add the
        termination Header IE, as within the Payload IE you can easily
        distinguish the type in the outer IE descriptor.
        It would be nice to know if this configuration will be
        required for the plugtest 17 - 18 Jul.

        Another question related to the test specification document
        for the this plugtest, have you already released this document
        ? and in that case, where can we find it?

        Cheers,
        Jose.

        _______________________________________________
        6tisch mailing list
        [email protected] <mailto:[email protected]>
        https://www.ietf.org/mailman/listinfo/6tisch



    _______________________________________________
    6tisch mailing list
    [email protected] <mailto:[email protected]>
    https://www.ietf.org/mailman/listinfo/6tisch




_______________________________________________
6tisch mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/6tisch


--
email: [email protected] | Skype: rstruik
cell: +1 (647) 867-5658 | US: +1 (415) 690-7363

_______________________________________________
6tisch mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/6tisch

Reply via email to