From f4fd18fa50254cbcafbbf5da98c34f204d135438 Mon Sep 17 00:00:00 2001 From: Alberto Gallegos Ramonet Date: Wed, 3 Apr 2024 23:11:27 +0200 Subject: [PATCH] lr-wpan: Adds MAC attribute identifiers --- CHANGES.md | 1 + RELEASE_NOTES.md | 1 + src/lr-wpan/model/lr-wpan-mac-base.h | 44 ++++++++++++++++++++++++---- src/lr-wpan/model/lr-wpan-phy.h | 4 +-- src/lr-wpan/test/lr-wpan-ed-test.cc | 2 +- 5 files changed, 44 insertions(+), 8 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 96812a222..bb6c9c0a8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -32,6 +32,7 @@ Applications have a new Attribute to set the IPv4 ToS field. * (wifi) Deprecated `WIFI_TID_TO_LINK_MAPPING_{NOT_SUPPORTED,SAME_LINK_SET,ANY_LINK_SET}`. They have been replaced by `WifiTidToLinkMappingNegSupport::{NOT_SUPPORTED,SAME_LINK_SET,ANY_LINK_SET}`, respectively. * (wifi) Deprecated `{IDLE, CCA_BUSY, TX, RX, SWITCHING, SLEEP, OFF}`. They have been replaced by `WifiPhyState::{IDLE, CCA_BUSY, TX, RX, SWITCHING, SLEEP, OFF}`, respectively. * `LrWpanMacPibAttributeIdentifier` attribute ids are now standard compliant. +* Multiple new identifiers added to `LrWpanMacPibAttributeIdentifier`. ### Changes to build system diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 09609b4fb..0363ec397 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -22,6 +22,7 @@ Release 3-dev - (network) !1828 - Added a common helper to create and install applications - (lr-wpan) !1915 - Use MAC and PHY standard attribute ids +- (lr-wpan) !1924 - Adds MAC attribute identifiers ### Bugs fixed diff --git a/src/lr-wpan/model/lr-wpan-mac-base.h b/src/lr-wpan/model/lr-wpan-mac-base.h index 9dc1d9e79..ed0a42620 100644 --- a/src/lr-wpan/model/lr-wpan-mac-base.h +++ b/src/lr-wpan/model/lr-wpan-mac-base.h @@ -253,14 +253,48 @@ struct MlmePollRequestParams */ enum LrWpanMacPibAttributeIdentifier { - pCurrentChannel = 0x00, //!< RF channel used for transmissions and receptions. - pCurrentPage = 0x04, //!< The current channel page. + pCurrentChannel = 0x00, //!< RF channel used for transmissions and receptions. + pCurrentPage = 0x04, //!< The current channel page. + macAckWaitDuration = 0x40, //!< Maximum number of symbols to wait for an acknowledgment. + macAssociationPermit = 0x41, //!< Indication of whether a coordinator is allowing association. + macAutoRequest = 0x42, //!< Indication of whether a device automatically sends a data request + //!< command if its address is listed in a beacon frame. + macBattLifeExt = 0x43, //!< Indication of whether BLE, through the reduction of coordinator + //!< receiver operation time during the CAP, is enabled. + macBattLifeExtPeriods = 0x44, //!< In BLE mode, the number of backoff periods during which the + //!< the receiver is enabled after the IFS following a beacon. macBeaconPayload = 0x45, //!< The contents of the beacon payload. macBeaconPayloadLength = 0x46, //!< The length in octets of the beacon payload. - macExtendedAddress = 3, //!< The extended address of the device (64 bit address) (No compliant). + macBeaconOrder = 0x47, //!< Specification of how often the coordinator transmits its beacon. + macBeaconTxTime = 0x48, //!< The time that the device transmitted its last beacome frame, + //!< in symbol periods. + macBsn = 0x49, //!< The sequence number added to the transmitted beacon frame. + macCoordExtendedAddress = 0x4a, //!< The 64-bit address of the coordinator through which + //!< the device is associated. + macCoordShortAddress = 0x4b, //!< The 16-bit short address assigned to the coordinator through + //!< which the device is associated. 0xFFFE = Ext address mode + //!< 0xFFFF = Unknown. + macDSN = 0x4c, //!< The sequence number added to the transmitted data or MAC command frame. + macGTSPermit = 0x4d, //!< True if the PAN coordinator is to accept GTS requests. + macMaxCSMABackoff = 0x4e, //!< The maximum number of backoffs the CSMA-CA algorithm + //!< will attempt before declaring a channel access failure. + macMinBE = 0x4f, //!< The minimum value of the backoff exponent (BE) in the CSMA-CA algorithm. + macExtendedAddress = 3, //!< The extended address of the device (64 bit address)(No compliant). macPanId = 0x50, //!< The 16-bit identifier of the Personal Area Network (PAN). - macRxOnWhenIdle = 0x52, //!< Indication of whether the MAC is enabled during idle periods. - macShortAddress = 0x53, //!< The short address of the device (16 bit address). + macPromiscuousMode = 0x51, //!< Indication of whether the MAC sublayer is in a promiscuous + //!< mode. True indicates that the MAC sublayer accepts all frames. + macRxOnWhenIdle = 0x52, //!< Indication of whether the MAC is enabled during idle periods. + macShortAddress = 0x53, //!< The short address of the device (16 bit address). + macSuperframeOrder = 0x54, //!< The length of the active portion of the outgoing superframe, + //!< including the beacon frame. + macTransactionPersistenceTime = 0x55, //!< The maximum time (in unit periods) that a + //!< transaction is stored by a coordinator and + //!< indicated in its beacon. + macMaxFrameRetries = 0x59, //!< The maximum number of retries allowed after a transmission + //!< failure. + macResponseWaitTime = 0x5a, //!< The maximum time in multiples of aBaseSuperframeDuration, a + //!< device shall wait for a response command frame to be + //!< available following a request command frame. unsupported = 255 // TODO: complete other MAC pib attributes }; diff --git a/src/lr-wpan/model/lr-wpan-phy.h b/src/lr-wpan/model/lr-wpan-phy.h index 5cfbc3913..e684a6a55 100644 --- a/src/lr-wpan/model/lr-wpan-phy.h +++ b/src/lr-wpan/model/lr-wpan-phy.h @@ -599,7 +599,7 @@ class LrWpanPhy : public SpectrumPhy /** * Finish the transmission of a frame. This is called at the end of a frame - * transmission, applying possibly pending PHY state changes and fireing the + * transmission, applying possibly pending PHY state changes and firing the * appropriate trace sources and confirm callbacks to the MAC. */ void EndTx(); @@ -612,7 +612,7 @@ class LrWpanPhy : public SpectrumPhy /** * Finish the reception of a frame. This is called at the end of a frame - * reception, applying possibly pending PHY state changes and fireing the + * reception, applying possibly pending PHY state changes and firing the * appropriate trace sources and indication callbacks to the MAC. A frame * destroyed by noise/interference is dropped here, but not during reception. * This method is also called for every packet which only contributes to diff --git a/src/lr-wpan/test/lr-wpan-ed-test.cc b/src/lr-wpan/test/lr-wpan-ed-test.cc index bdf909e32..509a194df 100644 --- a/src/lr-wpan/test/lr-wpan-ed-test.cc +++ b/src/lr-wpan/test/lr-wpan-ed-test.cc @@ -168,7 +168,7 @@ LrWpanEdTestCase::DoRun() NS_TEST_EXPECT_MSG_EQ(m_status, IEEE_802_15_4_PHY_SUCCESS, "ED status SUCCESS (as expected)"); NS_TEST_EXPECT_MSG_EQ(m_level, 0, "ED reported signal level 0 (as expected)"); - // Configure the RX Power to be -106.58 dBm, i.e. exectly to receiver sensitivity. + // Configure the RX Power to be -106.58 dBm, i.e. exactly to receiver sensitivity. propModel->SetRss(-106.58); m_status = IEEE_802_15_4_PHY_UNSPECIFIED;