See IEEE 802.11 chapter 7.3.1.11 Header format: | category: 1 | action value: 1 |. More...
#include "mgt-action-headers.h"
Classes | |
union | ActionValue |
typedef for union of different ActionValues More... | |
Public Member Functions | |
WifiActionHeader () | |
~WifiActionHeader () override | |
uint32_t | Deserialize (Buffer::Iterator start) override |
ActionValue | GetAction () const |
Return the action value. | |
CategoryValue | GetCategory () const |
Return the category value. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
uint32_t | GetSerializedSize () const override |
void | Print (std::ostream &os) const override |
void | Serialize (Buffer::Iterator start) const override |
void | SetAction (CategoryValue type, ActionValue action) |
Set action for this Action header. | |
Public Member Functions inherited from ns3::Header | |
~Header () override | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Register this type. | |
static std::pair< CategoryValue, ActionValue > | Peek (Ptr< const Packet > pkt) |
Peek an Action header from the given packet. | |
static std::pair< CategoryValue, ActionValue > | Remove (Ptr< Packet > pkt) |
Remove an Action header from the given packet. | |
Static Public Member Functions inherited from ns3::Header | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Chunk | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Private Attributes | |
uint8_t | m_actionValue |
Action value. | |
uint8_t | m_category |
Category of the action. | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
See IEEE 802.11 chapter 7.3.1.11 Header format: | category: 1 | action value: 1 |.
Definition at line 38 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::BlockAckActionValue : uint8_t |
Block Ack Action field values See 802.11 Table 8-202.
Enumerator | |
---|---|
BLOCK_ACK_ADDBA_REQUEST | |
BLOCK_ACK_ADDBA_RESPONSE | |
BLOCK_ACK_DELBA |
Definition at line 84 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::CategoryValue : uint8_t |
CategoryValue enumeration.
Enumerator | |
---|---|
SPECTRUM_MANAGEMENT | |
QOS | |
BLOCK_ACK | |
PUBLIC | |
RADIO_MEASUREMENT | |
MESH | |
MULTIHOP | |
SELF_PROTECTED | |
DMG | |
FST | |
UNPROTECTED_DMG | |
PROTECTED_EHT | |
VENDOR_SPECIFIC_ACTION |
Definition at line 50 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::DmgActionValue : uint8_t |
DMG Action field values See 802.11ad Table 8-281b.
Definition at line 150 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::FstActionValue : uint8_t |
FST Action field values See 802.11ad Table 8-281x.
Enumerator | |
---|---|
FST_SETUP_REQUEST | |
FST_SETUP_RESPONSE | |
FST_TEAR_DOWN | |
FST_ACK_REQUEST | |
FST_ACK_RESPONSE | |
ON_CHANNEL_TUNNEL_REQUEST |
Definition at line 181 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::MeshActionValue : uint8_t |
MeshActionValue enumeration.
Definition at line 111 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::MultihopActionValue : uint8_t |
MultihopActionValue enumeration.
Enumerator | |
---|---|
PROXY_UPDATE | |
PROXY_UPDATE_CONFIRMATION |
Definition at line 130 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::ProtectedEhtActionValue : uint8_t |
Protected EHT action field values See 802.11be D3.0 Table 9-623c.
Definition at line 209 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::PublicActionValue : uint8_t |
PublicActionValue enumeration.
Enumerator | |
---|---|
QAB_REQUEST | |
QAB_RESPONSE | |
FILS_DISCOVERY |
Definition at line 92 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::QosActionValue : uint8_t |
QosActionValue enumeration.
Enumerator | |
---|---|
ADDTS_REQUEST | |
ADDTS_RESPONSE | |
DELTS | |
SCHEDULE | |
QOS_MAP_CONFIGURE |
Definition at line 71 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::RadioMeasurementActionValue : uint8_t |
RadioMeasurementActionValue enumeration.
Enumerator | |
---|---|
RADIO_MEASUREMENT_REQUEST | |
RADIO_MEASUREMENT_REPORT | |
LINK_MEASUREMENT_REQUEST | |
LINK_MEASUREMENT_REPORT | |
NEIGHBOR_REPORT_REQUEST | |
NEIGHBOR_REPORT_RESPONSE |
Definition at line 100 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::SelfProtectedActionValue : uint8_t |
SelfProtectedActionValue enumeration.
Enumerator | |
---|---|
PEER_LINK_OPEN | |
PEER_LINK_CONFIRM | |
PEER_LINK_CLOSE | |
GROUP_KEY_INFORM | |
GROUP_KEY_ACK |
Definition at line 137 of file mgt-action-headers.h.
enum ns3::WifiActionHeader::UnprotectedDmgActionValue : uint8_t |
Unprotected DMG action field values See 802.11ad Table 8-281ae.
Enumerator | |
---|---|
UNPROTECTED_DMG_ANNOUNCE | |
UNPROTECTED_DMG_BRP | |
UNPROTECTED_MIMO_BF_SETUP | |
UNPROTECTED_MIMO_BF_POLL | |
UNPROTECTED_MIMO_BF_FEEDBACK | |
UNPROTECTED_MIMO_BF_SELECTION |
Definition at line 195 of file mgt-action-headers.h.
ns3::WifiActionHeader::WifiActionHeader | ( | ) |
Definition at line 25 of file mgt-action-headers.cc.
|
override |
Definition at line 29 of file mgt-action-headers.cc.
|
overridevirtual |
start | an iterator which points to where the header should read from. |
This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. The data read is expected to match bit-for-bit the representation of this header in real networks.
Note that data is not actually removed from the buffer to which the iterator points. Both Packet::RemoveHeader() and Packet::PeekHeader() call Deserialize(), but only the RemoveHeader() has additional statements to remove the header bytes from the underlying buffer and associated metadata.
Implements ns3::Header.
Definition at line 710 of file mgt-action-headers.cc.
References ns3::Buffer::Iterator::GetDistanceFrom(), m_actionValue, m_category, and ns3::Buffer::Iterator::ReadU8().
WifiActionHeader::ActionValue ns3::WifiActionHeader::GetAction | ( | ) | const |
Return the action value.
Definition at line 129 of file mgt-action-headers.cc.
References ADDTS_REQUEST, ADDTS_RESPONSE, BLOCK_ACK, BLOCK_ACK_ADDBA_REQUEST, BLOCK_ACK_ADDBA_RESPONSE, BLOCK_ACK_DELBA, ns3::WifiActionHeader::ActionValue::blockAck, CONGESTION_CONTROL_NOTIFICATION, DELTS, DMG, DMG_DTP_REQUEST, DMG_DTP_RESPONSE, DMG_HANDOVER_REQUEST, DMG_HANDOVER_RESPONSE, DMG_INFORMATION_REQUEST, DMG_INFORMATION_RESPONSE, DMG_MULTI_RELAY_CHANNEL_MEASUREMENT_REPORT, DMG_MULTI_RELAY_CHANNEL_MEASUREMENT_REQUEST, DMG_POWER_SAVE_CONFIGURATION_REQUEST, DMG_POWER_SAVE_CONFIGURATION_RESPONSE, DMG_RELAY_ACK_REQUEST, DMG_RELAY_ACK_RESPONSE, DMG_RELAY_SEARCH_REQUEST, DMG_RELAY_SEARCH_RESPONSE, DMG_RLS_ANNOUNCEMENT, DMG_RLS_REQUEST, DMG_RLS_RESPONSE, DMG_RLS_TEARDOWN, DMG_ROC_REQUEST, DMG_ROC_RESPONSE, DMG_TPA_REQUEST, DMG_TPA_RESPONSE, ns3::WifiActionHeader::ActionValue::dmgAction, FILS_DISCOVERY, FST, FST_ACK_REQUEST, FST_ACK_RESPONSE, FST_SETUP_REQUEST, FST_SETUP_RESPONSE, FST_TEAR_DOWN, ns3::WifiActionHeader::ActionValue::fstAction, GROUP_KEY_ACK, GROUP_KEY_INFORM, LINK_MEASUREMENT_REPORT, LINK_MEASUREMENT_REQUEST, LINK_METRIC_REPORT, m_actionValue, m_category, MDA_SETUP_REPLY, MDA_SETUP_REQUEST, MDAOP_ADVERTISEMENT_REQUEST, MDAOP_ADVERTISEMENTS, MDAOP_SET_TEARDOWN, MESH, ns3::WifiActionHeader::ActionValue::meshAction, MULTIHOP, ns3::WifiActionHeader::ActionValue::multihopAction, NEIGHBOR_REPORT_REQUEST, NEIGHBOR_REPORT_RESPONSE, NS_FATAL_ERROR, ON_CHANNEL_TUNNEL_REQUEST, PATH_SELECTION, PEER_LINK_CLOSE, PEER_LINK_CONFIRM, PEER_LINK_OPEN, PORTAL_ANNOUNCEMENT, PROTECTED_EHT, PROTECTED_EHT_EML_OPERATING_MODE_NOTIFICATION, PROTECTED_EHT_EPCS_PRIORITY_ACCESS_ENABLE_REQUEST, PROTECTED_EHT_EPCS_PRIORITY_ACCESS_ENABLE_RESPONSE, PROTECTED_EHT_EPCS_PRIORITY_ACCESS_TEARDOWN, PROTECTED_EHT_LINK_RECOMMENDATION, PROTECTED_EHT_MULTI_LINK_OPERATION_UPDATE_REQUEST, PROTECTED_EHT_MULTI_LINK_OPERATION_UPDATE_RESPONSE, PROTECTED_EHT_TID_TO_LINK_MAPPING_REQUEST, PROTECTED_EHT_TID_TO_LINK_MAPPING_RESPONSE, PROTECTED_EHT_TID_TO_LINK_MAPPING_TEARDOWN, ns3::WifiActionHeader::ActionValue::protectedEhtAction, PROXY_UPDATE, PROXY_UPDATE_CONFIRMATION, PUBLIC, ns3::WifiActionHeader::ActionValue::publicAction, QAB_REQUEST, QAB_RESPONSE, QOS, ns3::WifiActionHeader::ActionValue::qos, QOS_MAP_CONFIGURE, RADIO_MEASUREMENT, RADIO_MEASUREMENT_REPORT, RADIO_MEASUREMENT_REQUEST, ns3::WifiActionHeader::ActionValue::radioMeasurementAction, SCHEDULE, SELF_PROTECTED, ns3::WifiActionHeader::ActionValue::selfProtectedAction, TBTT_ADJUSTMENT_REQUEST, TBTT_ADJUSTMENT_RESPONSE, UNPROTECTED_DMG, UNPROTECTED_DMG_ANNOUNCE, UNPROTECTED_DMG_BRP, UNPROTECTED_MIMO_BF_FEEDBACK, UNPROTECTED_MIMO_BF_POLL, UNPROTECTED_MIMO_BF_SELECTION, UNPROTECTED_MIMO_BF_SETUP, and ns3::WifiActionHeader::ActionValue::unprotectedDmgAction.
Referenced by WifiFilsFrameTest::GetFilsDiscFrame(), ns3::GetTid(), ns3::HtFrameExchangeManager::NotifyPacketDiscarded(), ns3::HtFrameExchangeManager::NotifyReceivedNormalAck(), Peek(), ns3::dot11s::PeerManagementProtocolMac::Receive(), ns3::HtFrameExchangeManager::ReceiveMgtAction(), Remove(), and StartSeqNoUpdateAfterAddBaTimeoutTest::Transmit().
WifiActionHeader::CategoryValue ns3::WifiActionHeader::GetCategory | ( | ) | const |
Return the category value.
Definition at line 94 of file mgt-action-headers.cc.
References BLOCK_ACK, DMG, FST, m_category, MESH, MULTIHOP, NS_FATAL_ERROR, PROTECTED_EHT, PUBLIC, QOS, RADIO_MEASUREMENT, SELF_PROTECTED, UNPROTECTED_DMG, and VENDOR_SPECIFIC_ACTION.
Referenced by WifiFilsFrameTest::GetFilsDiscFrame(), ns3::GetTid(), ns3::HtFrameExchangeManager::NotifyPacketDiscarded(), ns3::HtFrameExchangeManager::NotifyReceivedNormalAck(), Peek(), ns3::dot11s::PeerManagementProtocolMac::Receive(), ns3::dot11s::HwmpProtocolMac::ReceiveAction(), ns3::HtFrameExchangeManager::ReceiveMgtAction(), Remove(), StartSeqNoUpdateAfterAddBaTimeoutTest::Transmit(), and ns3::dot11s::PeerManagementProtocolMac::UpdateOutcomingFrame().
|
overridevirtual |
Get the most derived TypeId for this Object.
This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.
Implements ns3::ObjectBase.
Definition at line 489 of file mgt-action-headers.cc.
References GetTypeId().
|
overridevirtual |
This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. This method should return the number of bytes which are needed to store the full header data by Serialize.
Implements ns3::Header.
Definition at line 697 of file mgt-action-headers.cc.
|
static |
Register this type.
Definition at line 479 of file mgt-action-headers.cc.
References ns3::TypeId::SetParent().
Referenced by GetInstanceTypeId().
|
static |
Peek an Action header from the given packet.
pkt | the given packet |
Definition at line 495 of file mgt-action-headers.cc.
References GetAction(), and GetCategory().
Referenced by ns3::EmlsrManager::NotifyMgtFrameReceived(), ns3::StaWifiMac::Receive(), EmlOmnExchangeTest::Transmit(), EmlsrDlTxopTest::Transmit(), EmlsrLinkSwitchTest::Transmit(), EmlOmnExchangeTest::TxDropped(), EmlOmnExchangeTest::TxOk(), and ns3::ApWifiMac::TxOk().
|
overridevirtual |
os | output stream This method is used by Packet::Print to print the content of a header as ascii data to a c++ output stream. Although the header is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace. i.e.: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5 |
Implements ns3::Header.
Definition at line 511 of file mgt-action-headers.cc.
References ADDTS_REQUEST, ADDTS_RESPONSE, BLOCK_ACK, BLOCK_ACK_ADDBA_REQUEST, BLOCK_ACK_ADDBA_RESPONSE, BLOCK_ACK_DELBA, CASE_ACTION_VALUE, CONGESTION_CONTROL_NOTIFICATION, DELTS, DMG, DMG_DTP_REQUEST, DMG_DTP_RESPONSE, DMG_HANDOVER_REQUEST, DMG_HANDOVER_RESPONSE, DMG_INFORMATION_REQUEST, DMG_INFORMATION_RESPONSE, DMG_MULTI_RELAY_CHANNEL_MEASUREMENT_REPORT, DMG_MULTI_RELAY_CHANNEL_MEASUREMENT_REQUEST, DMG_POWER_SAVE_CONFIGURATION_REQUEST, DMG_POWER_SAVE_CONFIGURATION_RESPONSE, DMG_RELAY_ACK_REQUEST, DMG_RELAY_ACK_RESPONSE, DMG_RELAY_SEARCH_REQUEST, DMG_RELAY_SEARCH_RESPONSE, DMG_RLS_ANNOUNCEMENT, DMG_RLS_REQUEST, DMG_RLS_RESPONSE, DMG_RLS_TEARDOWN, DMG_ROC_REQUEST, DMG_ROC_RESPONSE, DMG_TPA_REQUEST, DMG_TPA_RESPONSE, FILS_DISCOVERY, FST, FST_ACK_REQUEST, FST_ACK_RESPONSE, FST_SETUP_REQUEST, FST_SETUP_RESPONSE, FST_TEAR_DOWN, GROUP_KEY_ACK, GROUP_KEY_INFORM, LINK_MEASUREMENT_REPORT, LINK_MEASUREMENT_REQUEST, LINK_METRIC_REPORT, m_actionValue, m_category, MDA_SETUP_REPLY, MDA_SETUP_REQUEST, MDAOP_ADVERTISEMENT_REQUEST, MDAOP_ADVERTISEMENTS, MDAOP_SET_TEARDOWN, MESH, MULTIHOP, NEIGHBOR_REPORT_REQUEST, NEIGHBOR_REPORT_RESPONSE, NS_FATAL_ERROR, ON_CHANNEL_TUNNEL_REQUEST, PATH_SELECTION, PEER_LINK_CLOSE, PEER_LINK_CONFIRM, PEER_LINK_OPEN, PORTAL_ANNOUNCEMENT, PROTECTED_EHT, PROTECTED_EHT_EML_OPERATING_MODE_NOTIFICATION, PROTECTED_EHT_EPCS_PRIORITY_ACCESS_ENABLE_REQUEST, PROTECTED_EHT_EPCS_PRIORITY_ACCESS_ENABLE_RESPONSE, PROTECTED_EHT_EPCS_PRIORITY_ACCESS_TEARDOWN, PROTECTED_EHT_LINK_RECOMMENDATION, PROTECTED_EHT_MULTI_LINK_OPERATION_UPDATE_REQUEST, PROTECTED_EHT_MULTI_LINK_OPERATION_UPDATE_RESPONSE, PROTECTED_EHT_TID_TO_LINK_MAPPING_REQUEST, PROTECTED_EHT_TID_TO_LINK_MAPPING_RESPONSE, PROTECTED_EHT_TID_TO_LINK_MAPPING_TEARDOWN, PROXY_UPDATE, PROXY_UPDATE_CONFIRMATION, PUBLIC, QAB_REQUEST, QAB_RESPONSE, QOS, QOS_MAP_CONFIGURE, RADIO_MEASUREMENT, RADIO_MEASUREMENT_REPORT, RADIO_MEASUREMENT_REQUEST, SCHEDULE, SELF_PROTECTED, TBTT_ADJUSTMENT_REQUEST, TBTT_ADJUSTMENT_RESPONSE, UNPROTECTED_DMG, UNPROTECTED_DMG_ANNOUNCE, UNPROTECTED_DMG_BRP, UNPROTECTED_MIMO_BF_FEEDBACK, UNPROTECTED_MIMO_BF_POLL, UNPROTECTED_MIMO_BF_SELECTION, UNPROTECTED_MIMO_BF_SETUP, and VENDOR_SPECIFIC_ACTION.
Referenced by BackoffGenerationTest::Transmit(), and EmlsrOperationsTestBase::Transmit().
|
static |
Remove an Action header from the given packet.
pkt | the given packet |
Definition at line 503 of file mgt-action-headers.cc.
References GetAction(), and GetCategory().
Referenced by EmlsrDlTxopTest::CheckApEmlNotificationFrame(), EmlOmnExchangeTest::CheckEmlNotification(), EmlsrDlTxopTest::CheckStaEmlNotificationFrame(), and ns3::ApWifiMac::Receive().
|
overridevirtual |
start | an iterator which points to where the header should be written. |
This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. The data written is expected to match bit-for-bit the representation of this header in a real network.
Implements ns3::Header.
Definition at line 703 of file mgt-action-headers.cc.
References m_actionValue, and m_category.
void ns3::WifiActionHeader::SetAction | ( | WifiActionHeader::CategoryValue | type, |
WifiActionHeader::ActionValue | action ) |
Set action for this Action header.
type | category |
action | action |
Definition at line 34 of file mgt-action-headers.cc.
References BLOCK_ACK, DMG, FST, m_actionValue, m_category, MESH, MULTIHOP, PROTECTED_EHT, PUBLIC, QOS, RADIO_MEASUREMENT, SELF_PROTECTED, SPECTRUM_MANAGEMENT, UNPROTECTED_DMG, and VENDOR_SPECIFIC_ACTION.
Referenced by ns3::ApWifiMac::GetFilsDiscovery(), ns3::dot11s::HwmpProtocolMac::GetWifiActionHeader(), ns3::HtFrameExchangeManager::SendAddBaRequest(), ns3::HtFrameExchangeManager::SendAddBaResponse(), ns3::HtFrameExchangeManager::SendDelbaFrame(), ns3::EhtFrameExchangeManager::SendEmlOmn(), and ns3::dot11s::PeerManagementProtocolMac::SendPeerLinkManagementFrame().
|
private |
Action value.
Definition at line 290 of file mgt-action-headers.h.
Referenced by Deserialize(), GetAction(), Print(), Serialize(), and SetAction().
|
private |
Category of the action.
Definition at line 289 of file mgt-action-headers.h.
Referenced by Deserialize(), GetAction(), GetCategory(), Print(), Serialize(), and SetAction().