Context - G3-PLC Alliance
Transcription
Context - G3-PLC Alliance
G3 PLC – WS3 Interoperability MAC Layer interoperability Test process and test suite for new comers v0.2 Context This document describes the test process and the suite of the interoperability test that will be performed in the WS3 for the new comers on the MAC layer of the G3-PLC protocol for the CENELEC-A band, the FCC band and the ARIB band. Those tests will be divided in several groups: (GR1) Encoding/decoding of MAC frames (GR2) Encoding/decoding of MAC frames with Security enabled (GR3) Tests of the behaviour of the MAC layer when receiving various MAC frames (GR4) Test of the timing related mechanisms The tests names are structured as “MAC_GRx_yyy_TEST_TEMPLATE” where x is the number of the group, yyy is a 3 digit number identifying the test (tests are numbered sequentially) and TEST_TEMPLATE is a reminder of this test goal. Page 1/46 Table of content Context.................................................................................................................................................1 1 Test procedure...................................................................................................................................3 1.1 Access needed to perform the tests...........................................................................................3 1.2 Test definition...........................................................................................................................3 1.3 Test vectors evaluation..............................................................................................................4 1.4 Plug-Fest...................................................................................................................................5 2 (GR1) Encoding/decoding of the MAC frames................................................................................7 2.1 MAC_GR1_001_Data_frame_encoding_1..............................................................................7 2.2 MAC_GR1_002_Data_frame_encoding_2..............................................................................8 2.3 MAC_GR1_003_Data_frame_encoding_3..............................................................................9 2.4 MAC_GR1_004_Command_frame_beacon_request_encoding__test_vector_only_(optional) .......................................................................................................................................................10 2.5 MAC_GR1_005_Command_frame_tone-map_response_encoding......................................11 2.6 MAC_GR1_006A_Segmentation_2_segments......................................................................12 2.7 MAC_GR1_006B_Segmentation_2_segments......................................................................14 2.8 MAC_GR1_007_Segmentation_3_segments.........................................................................15 3 (GR2) MAC Security.....................................................................................................................17 3.1 MAC_GR2_001_Short_frame_ciphering...............................................................................17 3.2 MAC_GR2_002_Long_frame_ciphering...............................................................................18 3.3 MAC_GR2_003_Invalid_ciphering_dropping.......................................................................19 3.4 MAC_GR2_004_unset_key_dropping...................................................................................21 3.5 MAC_GR2_005_Short_frame_ciphering_2...........................................................................22 4 (GR3) Tests of the behaviour of the MAC layer when receiving various MAC frames................24 4.1 MAC_GR3_001_Acknowledge_mechanism.........................................................................24 4.2 MAC_GR3_002_ PAN_Coordinator_reply_to_Beacon_Request..........................................25 4.3 MAC_GR3_003_Node_reply_to_Beacon_Request...............................................................26 4.4 MAC_GR3_004_Reply_to_Tone-Map_request_in_data_frame............................................27 4.5 MAC_GR3_005_Reply_to_Tone-Map_request_in_command_frame (optional test)...........29 4.6 MAC_GR3_006_Address_filtering_PAN_ID_and_PAN_ID_conflict..................................31 4.7 MAC_GR3_007_Address_filtering_short_address................................................................32 4.8 MAC_GR3_008_Address_filtering_extended_address.........................................................34 4.9 MAC_GR3_009_Address_filtering_broadcast_address........................................................35 4.10 MAC_GR3_0010_Address_filtering_broadcast_PAN_ID...................................................36 4.11 MAC_GR3_011_PAN_ID_conflict (Removed)...................................................................37 4.12 MAC_GR3_012_Neighbour_Table_add_unknown.............................................................37 4.13 MAC_GR3_013_Neighbour_Table_Tone-Map_response...................................................39 5 (GR4) Test of the timing related mechanisms................................................................................40 5.1 MAC_GR4_001_Delay_between_data_frame_and_ACK.....................................................40 5.2 MAC_GR4_002_Delay_between_ACK_and_frame_contention_free_priority....................42 5.3 MAC_GR4_003_Delay_between_ACK_and_frame_high_priority......................................43 5.4 MAC_GR4_004_Delay_between_ACK_and_frame_normal_priority..................................44 Page 2/46 1 Test procedure The MAC interoperability tests are defined as a list of calls to MAC layer primitives, resulting in G3 frames that are received and decoded by another implementation. The resulting MAC layer indications are compared to the expected result. All tests will be executed during a Plug-Fest. Tests from groups 1 and 2 will also be executed before the Plug-Fest via a test vectors evaluation, as a way to speed up the interoperability process and detect problems before the Plug-Fest. 1.1 Access needed to perform the tests In order to execute the MAC interoperability tests, each implementer must have access to: – The MAC layer primitives – The MAC Information Base (IB) with read and write access – The neighbour table with read and write access. – The result of the last ToneMap “decision” (read only access, used by tests covering ToneMap response messages). Those accesses are needed during both test vector exchange and the Plug-Fest. 1.2 Test definition The tests are defined by the following elements: – An initial state, defining for example the content of the neighbour table, the security keys in place, the MAC address and the PAN_ID of the device, … – A list of MAC layer primitives calls, with the parameters defined. – A list of MAC layer indications that are expected as the result of the test. – A scenario describing the expected sequence of events. This description is only informative, the test result is only decided by the triggered MAC layer indications. An example of a test definition could be (informative): MAC_GR0_001_TEST_EXAMPLE Description: this test describes an example of encoding test. It is informative and may be incorrect. Scenario: One small MAC frame is sent by the sender implementation with acknowledge required, which should result in one PHY frame sent on the line, an acknowledge sent by the receiver implementation and a MAC frame indication by the receiver implementation. Initial state: – Sender: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = Page 3/46 0x7A1D – The neighbour table has one entry for MAC address 0x010C with tone-map-needed = false. – Receiver: – Short MAC address = 0x010C, extended MAC address = 0x8877665544332211, PAN_ID = 0x7A1D – The neighbour table is empty. List of MAC layer primitives calls: The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x7A1D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = DstPANId = 0x7A1D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal priority – msduLinkQuality, DSN and Timestamp values are ignored. 1.3 Test vectors evaluation Test vectors are only applicable to encoding tests (groups 1 and 2). The implementer executes the tests by calling MAC layer primitives and collects the resulting PD-DATA.request calls. In order for the test to correctly proceed, all acknowledge requests are supposed answered by a positive ACK. The test vector is the resulting list of psdu parameters. Page 4/46 The test vectors from the implementer are collected by TRIALOG. TRIALOG compares them with the reference test vectors. TRIALOG provides then the implementer with a synthesis document gathering the results of the comparison. MAC primitives MIB access MAC Layer Implementer A Evaluation by TRIALOG Test Vector PD-DATA.request The means used to perform the encoding tests and capture the PD-Data.request calls are left to the implementer (it can be done either on simulator or real hardware). The test vector file format is defined as one file per test, with one psdu per line, the psdu is expressed in hexadecimal form. For example, a test resulting in two PHY frames sent could be (note: this example is informative): 0102030405060708090A0B0C0D0E0F101112131415161718191A 0102030405060708090A0B0C0D0E0F10 1.4 Plug-Fest During a Plug-Fest, the physical implementations are linked by a cold wire. As the MAC exchanges will go through the PHY layer, the PHY layer implementations need to be interoperable. The tests will be done with 1 sending implementation and 1 receiving implementation. An additional oscilloscope is needed for GR4 tests. MAC primitives MIB access MAC primitives MIB access MAC Layer Implementer A MAC Layer Implementer B PHY Layer Implementer A PHY Layer Implementer B Power line Oscilloscope (Only for GR4 tests) Page 5/46 One of the implementation shall be a reference implementation (an implementation having already passed successfully the MAC IOT). Tests between new comers implementation will be also performed, if at least two new comers participate to the Plug-Fest. Page 6/46 2 (GR1) Encoding/decoding of the MAC frames Those tests validate the encoding of a MAC frame, by having one implementer sending a MAC frame (resulting in one or several PHY frames and acknowledges) and another implementer receiving and decoding the frame. Timings are not taken into account for this group of tests. 2.1 MAC_GR1_001_Data_frame_encoding_1 Description: This test covers part 1 of 3 for the encoding of a short MAC data frame, without security. The data frame to send is parametrised with msdu length = 15, source & destination using short address, source PAN_ID different from destination PAN_ID (implying no PAN ID compression), no ACK requested, no Tone-Map request, Priority = Normal. Initial state: – Sender: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – macDSN parameter is set to 0x5E. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Receiver: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0xFFFF – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 Page 7/46 – TxOptions = unacknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0xFFFF – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN = 0x5E – msduLinkQuality and Timestamp values are ignored. 2.2 MAC_GR1_002_Data_frame_encoding_2 Description: This test covers part 2 of 3 for the encoding of a short MAC data frame, without security. The data frame to send is parametrised with msdu length = 15, source & destination using extended address, source PAN_ID equal to destination PAN_ID (implying PAN ID compression), ACK requested, no Tone-Map request, Priority = high priority. Initial state: – Sender: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – macDSN parameter is set to 0x6A. – As an extended destination address is used, the state of the neighbour table has no impact on the test behaviour. – Receiver: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: Page 8/46 – SrcAddrMode = extended address, DstAddrMode = extended address (imply ROBO mode, no Tone-Map request) – DstPANId = 0x781D (equal to sender PAN_ID) – DstAddr = 0x8172635445362718 – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = High priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = extended address, DstAddrMode = extended address, SrcAddr = 0x1122334455667788, DstAddr = 0x8172635445362718 – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = High priority – DSN = 0x6A – msduLinkQuality and Timestamp values are ignored. 2.3 MAC_GR1_003_Data_frame_encoding_3 Description: This test covers part 3 of 3 for the encoding of a short MAC data frame, without security. The data frame to send is parametrised with msdu length = 15, source using extended address, destination using short address, source PAN_ID equal to destination PAN_ID (implying PAN ID compression), ACK requested, Tone-Map request (controlled by the initial state of the neighbour table), Contention control = contention allowed, Priority = Normal. Initial state: – Sender: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – macDSN parameter is set to 0x6A. – The neighbour table have one entry for MAC address 0x010C with: – Age set to 0 (so a ToneMap should be requested). Page 9/46 – IsNeighbour set to macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Receiver: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = extended address, DstAddrMode = short address – DstPANId = 0x781D (equal to sender PAN_ID) – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = extended address, DstAddrMode = short address, SrcAddr = 0x1122334455667788, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal priority – DSN = 0x6A – msduLinkQuality and Timestamp values are ignored. 2.4 MAC_GR1_004_Command_frame_beacon_request_encoding__test _vector_only_(optional) Description: This test was meant to cover the encoding of a Beacon Request frame. As no MAC layer indication is called when receiving a Beacon Request, the test is modified to be executable Page 10/46 during a test vector exchange (but it can not be run during a Plug-Fest). The underlying mechanism is also covered by the MAC_GR3_002 and MAC_GR3_003, which can be run during a Plug-Fest. Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x6A. – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The sender call the MLME-SCAN.request primitive with: – ScanType = 1 (active scan) – ScanChannels = all 27 bits set to zero. – ScanDuration = 5 seconds (using the default value defined for adpActiveScanDuration). – ChannelPage = 0 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored). As a result of this primitive call, a call to PD-DATA.request should be made by the sending implementation. A test vector is created from this call as defined in §1.3. The receiving implementation should decode the test vector, and understand it as a MAC Beacon Request command frame. 2.5 MAC_GR1_005_Command_frame_tone-map_response_encoding Description: This test covers the encoding of a Tone-Map Response frame. The result of the decoding of the Tone-Map request will be checked in the neighbour table of the receiver. As the Tone-Map content is an internal choice of the MAC layer (that also depends on the LQI provided by the PHY layer), every implementer must have a specific access to the Tone-Map “decision” made by the MAC layer. Initial state: – Sender: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D Page 11/46 – The neighbour table have one entry for MAC address 0x010C with: – Age set to 0 (so a ToneMap should be requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Receiver: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: The sending of a ToneMap Response is not possible using a MAC layer primitive. Thus the implementer has to generate the sending by its own means. List of expected MAC layer indications: None Content of the Neighbour table for the receiver: – The neighbour table have one entry for MAC address 0x002A with: – Modulation = ? mode. – ToneMap = ?, TxGain = ?, TxCoeff = ? The implementer must provide the content of the “decision” to be checked against the receiver neighbour table. The values to provide are: • TXRES • TXGAIN • MOD • TM • LQI • TXCOEF for each sub-band 2.6 MAC_GR1_006A_Segmentation_2_segments Description: This test covers part 1 of 2 of the segmentation mechanisms of MAC layer on the CENELEC-A band-plan. The PHY layer is configured to use a DBPSK modulation with no notching and no tone-mapping. Page 12/46 A MAC data frame with a msdu of 300 bytes is used, which should result in 2 PHY frames. Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 for each carrier group – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = (0xFF)*300 and msduLength = 300 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal Priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = (0xFF)*300 and msduLength = 300 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal Priority Page 13/46 – DSN = 0x29 – msduLinkQuality and Timestamp values are ignored. 2.7 MAC_GR1_006B_Segmentation_2_segments Description: This test covers the segmentation mechanisms of MAC layer on the FCC and ARIB band-plans. The PHY layer is configured to use a DBPSK modulation with no notching and a tone-map using only 9 carriers. A MAC data frame with a msdu of 300 bytes is used, which should result in 2 PHY frames. Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = only 3 sub-carriers used : – For FCC band-plan “111000000000000000000000”b – For ARIB band-plan “111000000000000000”b – TxGain = 0, TxCoeff = 0 for each carrier group – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = (0xFF)*300 and msduLength = 300 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) Page 14/46 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal Priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = (0xFF)*300 and msduLength = 300 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal Priority – DSN = 0x29 – msduLinkQuality and Timestamp values are ignored. 2.8 MAC_GR1_007_Segmentation_3_segments Description: This test covers part 2 of 2 of the segmentation mechanisms of MAC layer on the CENELEC-A band-plan. The PHY layer is configured to use a ROBO modulation with no notching and no tone-mapping. A MAC data frame with a msdu of 300 bytes is used, which should result in 3 PHY frames. Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 for each carrier group – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D List of MAC layer primitives calls: Page 15/46 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = (0xFF)*300 and msduLength = 300 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal Priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = (0xFF)*300 and msduLength = 300 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal Priority – DSN = 0x29 – msduLinkQuality and Timestamp values are ignored. Page 16/46 3 (GR2) MAC Security Those tests validate the encoding of a MAC frame with security enabled, by having one implementer sending a MAC frame (resulting in one or several PHY frames and acknowledges) and another implementer receiving and decoding the frame. 3.1 MAC_GR2_001_Short_frame_ciphering Description: This test covers the ciphering of a short MAC data frame. A msdu of 45 bytes is provided, along with the GMK key and frame counter to use to cipher the frame. The security configuration use ENC-MIC-32. Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 for each carrier group – macFrameCounter set to 0x00000000 – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0x11111111111111111111111111111111 – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D – The FrameCounter entry for the sending device must be set to 0x00000000. This entry being internal to the MAC Layer, the means used to initialize this value is left to the implementer. – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0x11111111111111111111111111111111 List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C Page 17/46 – msdu = (0x75)*45 and msduLength = 45 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 1, KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = (0x75)*45 and msduLength = 45 – SecurityLevel = 5 (ENC-MIC-32), KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority – DSN = 0x29 – msduLinkQuality and Timestamp values are ignored. 3.2 MAC_GR2_002_Long_frame_ciphering Description: This test covers the ciphering of a long MAC data frame. The PHY layer is configured to use a DBPSK modulation with no notching and no tone-mapping. A msdu of 300 bytes is provided, along with the GMK key and frame counter to use to cipher the frame. The security configuration use ENC-MIC-32. This should result in the transmission of 2 MAC segments. Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 for each carrier group – macFrameCounter set to 0x00000000 Page 18/46 – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0x11111111111111111111111111111111 – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D – The FrameCounter entry for the sending device must be set to 0x00000000. This entry being internal to the MAC Layer, the means used to initialize this value is left to the implementer. – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0x11111111111111111111111111111111 List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = (0xA2)*300 and msduLength = 300 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 1, KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = (0xA2)*300 and msduLength = 300 – SecurityLevel = 5 (ENC-MIC-32), KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority – DSN = 0x29 – msduLinkQuality and Timestamp values are ignored. 3.3 MAC_GR2_003_Invalid_ciphering_dropping Description: This test checks that a frame using an invalid ciphering is dropped on reception. A msdu of 45 bytes is provided, along with the GMK key and frame counter to use to cipher the Page 19/46 frame. The security configuration use ENC-MIC-32. The frame is decoded with a supplied GCM key different from the one used for encoding. The frame should be dropped with a ciphering error (the computed MIC is invalid, generating a MLME-COMM-STATUS.indication with status = SECURITY_ERROR). Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 for each carrier group – macFrameCounter set to 0x00000000 – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0x11111111111111111111111111111111 – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D – The FrameCounter entry for the sending device must be set to 0x00000000. This entry being internal to the MAC Layer, the means used to initialize this value is left to the implementer. – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0x22222222222222222222222222222222 List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = (0x8B)*45 and msduLength = 45 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 5 (ENC-MIC-32), KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority Page 20/46 List of expected MAC layer indications: 1) The receiver should receive a MLME-COMM-STATUS.indication with status = SECURITY_ERROR 3.4 MAC_GR2_004_unset_key_dropping Description: This test checks that a frame using an unknown key is dropped on reception. A msdu of 45 bytes is provided, along with the GMK key to be set in slot id 1 and frame counter to use to cipher the frame. The security configuration uses ENC-MIC-32. The frame is decoded without the GMK key set in the slot 1 (empty slot). The frame should be dropped with a ciphering error (generating a MLME-COMM-STATUS.indication with status = UNAVAILABLE_KEY). Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 for each carrier group – macFrameCounter set to 0x00000000 – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0x11111111111111111111111111111111 – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D – The FrameCounter for the sending device must be set to 0x00000000. This entry being internal to the MAC Layer, the means used to initialize this value is left to the implementer. – No GMK set in the macKeyTable. List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D Page 21/46 – DstAddr = 0x010C – msdu = (0x8B)*45 and msduLength = 45 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 5 (ENC-MIC-32), KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority List of expected MAC layer indications: 1) The receiver should UNAVAILABLE_KEY receive a MLME-COMM-STATUS.indication with status = 3.5 MAC_GR2_005_Short_frame_ciphering_2 Description: This test covers the ciphering of a short MAC data frame. A msdu of 45 bytes is provided, along with the GMK key and frame counter to use to cipher the frame. The security configuration use ENC-MIC-32. The frame counter and key value are different from the previous tests, in order to catch endianness issues. Initial state: – Sender: – Short MAC address = 0x002A, PAN_ID = 0x781D – macDSN parameter is set to 0x29. – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 for each carrier group – macFrameCounter set to 2 685 554 979 (0xA0125123) – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0xAB10341145111BC3C12DE8FF11142204 – Receiver: – Short MAC address = 0x010C, PAN_ID = 0x781D – The FrameCounter entry for the sending device must be set to 0x00000000. This entry being internal to the MAC Layer, the means used to initialize this value is left to the implementer. Page 22/46 – One GMK set in the macKeyTable : KeyIndex = 0x00, Key = 0xAB10341145111BC3C12DE8FF11142204 List of MAC layer primitives calls: 1) The sender call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = (0x75)*45 and msduLength = 45 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 1, KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority List of expected MAC layer indications: 1) The receiver should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = (0x75)*45 and msduLength = 45 – SecurityLevel = 5 (ENC-MIC-32), KeyIdMode = 0x01, KeyIndex = 0x00, KeySource value is ignored. – QualityOfService = Normal Priority – DSN = 0x29 – msduLinkQuality and Timestamp values are ignored. Page 23/46 4 (GR3) Tests of the behaviour of the MAC layer when receiving various MAC frames The tests of the behaviour group are done between 2 implementations A and B, and the tests verify some of the specified exchanges controlled by MAC layer between A and B. Expected tests result are defined as a list of MAC layer indications and the final content of the MAC neighbour table for each implementation. Those tests are executed during a Plug-Fest. 4.1 MAC_GR3_001_Acknowledge_mechanism This test checks that – An acknowledge is sent by B in response to a data frame with ACK_Request enabled coming from A. – The acknowledge is correctly understood by A. A data frame is sent by A with ACK_Request enabled. Then B must send an ACK PHY frame and A must not send the data frame again. Expected interactions on the line: The device A should send a MAC data frame with the acknowledge request bit set. The device B should send an acknowledgement frame. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: Page 24/46 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should receive the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = SUCCESS – Timestamp value is ignored. 2) The device B should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. 4.2 MAC_GR3_002_ PAN_Coordinator_reply_to_Beacon_Request This test checks that the reception of a Beacon Request triggers the sending of a Beacon. The receiver of the Beacon Request is configured as a PAN coordinator. Expected interactions on the line: The device B should send a beacon request frame. The device A should respond with a beacon frame (with informations indicating that the device is a PAN coordinator). Page 25/46 Initial state: – Device A: – Configured as PAN coordinator. – Short MAC address = 0x0000, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – Device B: – No Short MAC address configured, extended MAC address = 0x8172635445362718, no PAN_ID (= 0xFFFF). – The neighbour table is empty. List of MAC layer primitives calls: 1) The device B call the MLME-SCAN.request primitive with: – ScanType = 0x01 (active scan) – ScanChannels = 0 (unused) – ScanDuration = 5 seconds – ChannelPage = 0 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) List of expected MAC layer indications: 1) The Device B should receive the following MLME-BEACON-NOTIFY.indication: – PanDescriptor = – PAN ID = 0x781D – LBAAddress = 0x0000 – RC_COORD = 0 – LinkQuality value is ignored. 4.3 MAC_GR3_003_Node_reply_to_Beacon_Request This test checks that the reception of a Beacon Request triggers the sending of a Beacon. The receiver is configured as a “normal” node (correspond to a coordinator node in 802.15.4 wording). Expected interactions on the line: The device B should send a beacon request frame. The device A should respond with a beacon frame (with informations indicating that the device is a normal G3 node). Page 26/46 Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – Device B: – No Short MAC address configured, extended MAC address = 0x8172635445362718, no PAN_ID (= 0xFFFF). List of MAC layer primitives calls: 1) The device B call the MLME-SCAN.request primitive with: – ScanType = 0x01 (active scan) – ScanChannels = 0 (unused) – ScanDuration = 5 seconds – ChannelPage = 0 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) List of expected MAC layer indications: 1) The Device B should receive the following MLME-BEACON-NOTIFY.indication: – PanDescriptor = – PAN ID = 0x781D – LBAAddress = 0x002A – RC_COORD and LinkQuality values are ignored. 4.4 MAC_GR3_004_Reply_to_Tone-Map_request_in_data_frame This test checks that the reception of a Data frame with the Tone-Map Request field set to true triggers the sending of a Tone-Map response. Note: this test must be executed once for each band-plan tested (CENELEC-A, FCC/ARIB), as the tone-map response messages are different. Expected interactions on the line: The device A should send a MAC data frame with the TMR bit set. The device B should send an acknowledgement frame. The device B should send a Tone-Map Response (MAC command frame) The device A should send an acknowledgement frame. Page 27/46 Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: – Age set to 0 (so a ToneMap will be requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x002A with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should receive the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = SUCCESS Page 28/46 – Timestamp value is ignored. 1) The device B should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. 3) The device A should have the following neighbour table entry for MAC address 0x010C: – Age > 0 (indicate that a Tone-Map response have been received) – The modulation value can not be predicted, however a value different from ROBO indicate that a tone-map response have been received. – ToneMap, TxGain and TxCoeff value are ignored. 4.5 MAC_GR3_005_Reply_to_Tone-Map_request_in_command_frame (optional test) This test checks that the reception of a Command frame (Tone-Map response) with the Tone-Map Request field set to true triggers the sending of a Tone-Map response. Expected interactions on the line: The device A should send a MAC data frame with the TMR bit set. The device B should send an acknowledgement frame. The device B should send a Tone-Map Response (MAC command frame) with the TMR bit set. The device A should send an acknowledgement frame. The device A should send a Tone-Map Response (MAC command frame). The device B should send an acknowledgement frame. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: Page 29/46 – Age set to 0 (so a ToneMap will be requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x002A with: – Age set to 0 (so a ToneMap will requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should receive the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = SUCCESS – Timestamp value is ignored. 1) The device B should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C Page 30/46 – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. 3) The device A should have the following neighbour table entry for MAC address 0x010C: – Age > 0 (indicate that a Tone-Map response have been received) – The modulation value can not be predicted, however a value different from ROBO indicate that a tone-map response have been received. – ToneMap, TxGain and TxCoeff value are ignored. 4) The device A should have the following neighbour table entry for MAC address 0x002A: – Age > 0 (indicate that a Tone-Map response have been received) – The modulation value can not be predicted, however a value different from ROBO indicate that a tone-map response have been received. – ToneMap, TxGain and TxCoeff value are ignored. 4.6 MAC_GR3_006_Address_filtering_PAN_ID_and_PAN_ID_conflict This test checks that a frame with a non-broadcast destination PAN_ID different from the receiver PAN_ID is dropped and that the PAN_ID conflict mechanism is started (generation of a MLMESYNC-LOSS.indication primitive with LossReason = PAN_ID_CONFLICT by the receiver). Expected interactions on the line: The device A should send a MAC data frame. This frame should be sent several time due to the absence of acknowledge reply. The device B must not send an acknowledgement frame. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table is empty. – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D Page 31/46 – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x0001 – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should receive the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = NO_ACK – Timestamp value is ignored. 2) no MCPS-DATA.indication should be generated by the device B. 3) The device B should generate a MLME-SYNC-LOSS.indication primitive: – LossReason = ALTERNATE_PANID_DETECTION; – PANId = 0x0001 – LogicalChannel = 0 (not used) – ChannelPage = 0 (not used) – SecurityLevel = 0 (not used) – KeyIdMode, KeySource and KeyIndex can be ignored. 4.7 MAC_GR3_007_Address_filtering_short_address This test checks that a frame with a non-broadcast short destination MAC address different from the receiver short address is dropped. Expected interactions on the line: Page 32/46 The device A should sent a MAC data frame. This frame should be sent several time due to the absence of acknowledge reply. The device B must not send an acknowledgement frame. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table is empty. – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x0089 – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should receive the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = NO_ACK – Timestamp value is ignored. 2) no MCPS-DATA.indication should be generated by the device B. Page 33/46 4.8 MAC_GR3_008_Address_filtering_extended_address This test checks that a frame with an extended destination MAC address different from the receiver extended address is dropped. Expected interactions on the line: The device A should send a MAC data frame. This frame should be sent several time due to the absence of acknowledge reply. The device B must not send an acknowledgement frame. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table is empty. – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = extended address – DstPANId = 0x781D – DstAddr = 0xAEADAEADAEADAEAD – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should receive the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = NO_ACK Page 34/46 – Timestamp value is ignored. 2) no MCPS-DATA.indication should be generated by the device B. 4.9 MAC_GR3_009_Address_filtering_broadcast_address This test checks that a frame with a short destination MAC address equal to 0xFFFF is indicated by the receiver. Expected interactions on the line: The device A should send a MAC data frame. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table is empty. – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0xFFFF – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = no acknowledge required (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should generate the following MCPS-DATA.confirm: Page 35/46 – msduHandle = 0x00 – status = SUCCESS – Timestamp value is ignored. 2) The device B should generate the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0xFFFF – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. 4.10 MAC_GR3_0010_Address_filtering_broadcast_PAN_ID This test checks that a frame with an PAN_ID destination equal to 0xFFFF (and a short destination MAC address equal to 0xFFFF) is accepted by the receiver, regardless of the receiver PAN_ID configured value. Expected interactions on the line: The device A should send a MAC data frame. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table is empty. – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0xFFFF Page 36/46 – DstAddr = 0xFFFF – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = no acknowledge required (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should generate the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = SUCCESS – Timestamp value is ignored. 2) The device B should generate the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0xFFFF – SrcPANId = 0x781D, DstPANId = 0xFFFF – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. 4.11 MAC_GR3_011_PAN_ID_conflict (Removed) This test have been merged with GR3_006 and removed from the Test Suite. 4.12 MAC_GR3_012_Neighbour_Table_add_unknown This test checks that when receiving a frame, the receiver adds an entry in the neighbour table for this sender short address. Expected interactions on the line: The device A should send a MAC data frame. The device B should send an acknowledgement frame. Initial state: Page 37/46 – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device A should receive the following MCPS-DATA.confirm: – msduHandle = 0x00 – status = SUCCESS – Timestamp value is ignored. 1) The device B should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D Page 38/46 – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. 3) The device B should have the following neighbour table entry for MAC address 0x002A: – Age = 0. – IsNeighbour = macMaxNeighborValidTime. – Modulation = ROBO mode. – ToneMap = all sub-carriers used – TxGain = 0, TxCoeff = 0 (for each carrier group) 4.13 MAC_GR3_013_Neighbour_Table_Tone-Map_response This test checks that when receiving a Tone-Map response, the receiver updates the entry in the neighbour table for this sender short address and sets the Age field to a non-zero value. This test duplicates MAC_GR3_004 and should be removed. Page 39/46 5 (GR4) Test of the timing related mechanisms Those test checks that the timing during exchanges between 2 implementations respects the specification timing description. Only the respect of the intervals defined by the specification are tested. Those tests are executed during a Plug-Fest. The measurements will be done using an oscilloscope connected to the cold-wire. For this execution of the interoperability tests, the following values are used: – For CENELEC-A band-plan: – aRIFS = aCIFS = 8 symbols. – Symbol duration = 695µs. – For FCC band-plan: – aRIFS = aCIFS = 10 symbols. – Symbol duration = 231,66µs. – For ARIB band-plan: – aRIFS = 10 symbols, aCIFS = 108 symbols. – Symbol duration = 231,66µs. – macHighPriorityWindowSize = 7, resulting in HPCW = 14 symbols. – macMinBE = 3. The expected duration described in the tests are tested with a tolerance of +/- 1 symbols, to take into account measures imprecision. 5.1 MAC_GR4_001_Delay_between_data_frame_and_ACK The duration between the end of a valid MAC frame with Acknowledge Request set to true and the beginning of the resulting acknowledge is measured. This duration must respect the RIFS value (see G3 specification §C.4). Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: Page 40/46 – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device B should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. Physical measurements: The data frame must be seen on the line only once (if not, the acknowledgement may not be correctly working between the devices). The delay between the end of the frame and the start of the acknowledge is measured, a duration of (RIFS) is expected. For CENELEC-A, this duration corresponds to = 5,56 ms. For FCC/ARIB, this duration corresponds to = 2,32 ms. Page 41/46 5.2 MAC_GR4_002_Delay_between_ACK_and_frame_contention_free_ priority The duration between the end of an acknowledge and the start of the following MAC frame which uses the contention free access level of priority is measured. This duration must be greater than CIFS and smaller than (CIFS + CFS) (see G3 specification §C.4). Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 0xFF * 300 and msduLength = 300 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal List of expected MAC layer indications: 1) The device B should receive the following MCPS-DATA.indication: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D Page 42/46 – msdu = 0xFF * 300 and msduLength = 300 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal – DSN, msduLinkQuality and Timestamp values are ignored. Physical measurements: Two data frames should be seen on the line (2 segments). The delay between the end of the first segment acknowledge and the start of the second segment is measured. This duration should be between CIFS and (CIFS + CFS). For CENELEC-A, the duration measured should be between 5,56 ms and 6,95 ms. For FCC, the duration measured should be between 2,32 ms and 2,78 ms. For ARIB, the duration measured should be between 25 ms and 25,46 ms. 5.3 MAC_GR4_003_Delay_between_ACK_and_frame_high_priority The duration between the end of an acknowledge and the start of the following MAC frame which uses the high priority access level is measured. This duration must be greater than (CIFS + CFS) and smaller than (CIFS + CFS + HPCW) (see G3 specification §C.4). Due to the random back-off value chosen by the sender, the test must be executed several times in order to validate the correct usage of the priority window range. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive 2 times with: Page 43/46 – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = High priority Note: the two MCPS-DATA.request must be called without delay in between, so the frames are sent on the line without idle time and the CSMA priority apply. List of expected MAC layer indications: 1) The device B should receive the following MCPS-DATA.indication twice: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = High priority – DSN, msduLinkQuality and Timestamp values are ignored. Physical measurements: Two data frames should be seen on the line (independent frames). The delay between the end of the first frame acknowledge and the start of the second frame is measured. This duration should be between (CIFS + CFS) and (CIFS + CFS + HPCW). For CENELEC-A, the duration measured should be between 6,95 ms and 16,68 ms. For FCC, the duration measured should be between 2,78 ms and 6,02 ms. For ARIB, the duration measured should be between 25,46 ms and 28,71 ms. 5.4 MAC_GR4_004_Delay_between_ACK_and_frame_normal_priority The duration between the end of an acknowledge and the start of the following MAC frame which uses the normal priority access level is measured. The test assumes that no collision can occur (only one sender on the line at a given time). This duration must be greater than (CIFS + CFS + HPCW) and smaller than (CIFS + CFS + HPCW + ((2^minBE – 1) * aSlotTime)) (see G3 specification §C.4). Page 44/46 Due to the random back-off value chosen by the sender, the test must be executed several times in order to validate the correct usage of the priority window range. Initial state: – Device A: – Short MAC address = 0x002A, extended MAC address = 0x1122334455667788, PAN_ID = 0x781D – The neighbour table have one entry for MAC address 0x010C with: – Age set to macMaxAgeTime (so no ToneMap is requested). – IsNeighbour set to macMaxNeighborValidTime. – Modulation = DBPSK mode. – ToneMap = all sub-carriers used, TxGain = 0, TxCoeff = 0 (for each carrier group) – Device B: – Short MAC address = 0x010C, extended MAC address = 0x8172635445362718, PAN_ID = 0x781D – The neighbour table is empty. List of MAC layer primitives calls: 1) The device A call the MCPS-DATA.request primitive 2 times with: – SrcAddrMode = short address, DstAddrMode = short address – DstPANId = 0x781D – DstAddr = 0x010C – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – msduHandle = 0x00 – TxOptions = acknowledged transmission (other parameters have fixed values) – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal priority Note: the two MCPS-DATA.request must be called without delay in between, so the frames are sent on the line without idle time and the CSMA priority apply. List of expected MAC layer indications: 1) The device B should receive the following MCPS-DATA.indication twice: – SrcAddrMode = short address, DstAddrMode = short address, SrcAddr = 0x002A, DstAddr = 0x010C Page 45/46 – SrcPANId = 0x781D, DstPANId = 0x781D – msdu = 112233445566778899AABBCCDDEEFF and msduLength = 15 – SecurityLevel = 0 (KeyIdMode, KeySource and KeyIndex values are ignored) – QualityOfService = Normal priority – DSN, msduLinkQuality and Timestamp values are ignored. Physical measurements: Two data frames should be seen on the line (independent frames). The delay between the end of the first frame acknowledge and the start of the second frame is measured. This duration should be between: – (CIFS + CFS + HPCW) – (CIFS + CFS + HPCW + ((2^minBE – 1) * aSlotTime)) For CENELEC-A, the duration measured should be between 16,68 ms and 26,41 ms. For FCC, the duration measured should be between 6,02 ms and 9,27 ms. For ARIB, the duration measured should be between 28,71 ms and 31,95 ms. Page 46/46