************************** Start of proposed change 1 ****************************
4.3.1.6 Frame options (FOptsLen in FCtrl, FOpts)
The frame-options length field (FOptsLen) in FCtrl byte denotes the actual length of the
frame options field (FOpts) included in the frame.
FOpts transport MAC commands of a maximum length of 15 octets that are piggybacked
onto data frames; see Chapter 5 for a list of valid MAC commands.
If FOptsLen is 0, the FOpts field is absent. If FOptsLen is different from 0, i.e. if MAC
commands are present in the FOpts field, the port 0 cannot be used (FPort must be either
not present or different from 0).
MAC commands cannot be simultaneously present in the payload field and the frame options
field. Should this occur, the device SHALL ignore the frame.
If a frame header carries FOpts, FOpts MUST be encrypted before the message integrity
code (MIC) is calculated.
The encryption scheme used is based on the generic algorithm described in IEEE
802.15.4/2006 Annex B [IEEE802154] using AES with a key length of 128 bits.
The key K used is the NwkSEncKey for FOpts field in both the uplink and downlink direction.
The fields encrypted are: pld = FOpts
For each message, the algorithm defines a single Block A
1
A:
Size (bytes)
1 4 1 4 4 1 1
A
1
A
0x01
0x00000001
when
FCntUp or
NFCntDwn
is used
0x00000002
when
AFCntDwn
is used
4 x 0x00
Dir DevAddr
FCntUp or
NFCntDwn
when FPort is
absent or
AFcntDwn
when FPort >
0
0x00
0x01
0x00
Figure 1 : Encryption block format
The direction field (Dir) is 0 for uplink frames and 1 for downlink frames.
The block A
1
A is encrypted to get a block S:
S = aes128_encrypt(K, A
1
A)
Encryption and decryption of the FOpts is done by truncating (pld | pad
16
) xor S to the first len(pld)
octets.
************************** End of proposed change 1 ****************************