美文网首页NS3(Network Simulator)
NS3 WifiMacQueue类API说明

NS3 WifiMacQueue类API说明

作者: shawn168 | 来源:发表于2017-06-25 20:32 被阅读241次

介绍:

此队列实现(第9.19.2.6节“重传过程”第6段; IEEE 802.11-2012)中描述的超时过程。
当MAC接收到要发送到PHY的分组时,在被当前时间标记之后,它在内部队列中排队。
当数据包出队时,队列检查其时间戳以验证是否应该删除它。

如果dot11EDCATableMSDULifetime已过,则将被删除。 否则,它返回给调用者。

Attributes属性:

MaxPacketNumber: If a packet arrives when there are already this number of packets, it is dropped.

    Set with class: ns3::UintegerValue
    Underlying type: uint32_t 0:4294967295
    Initial value: 400
    Flags: construct write read
如果一个分组到达,当已经缓存这个数量的分组,它被丢弃。

MaxDelay: If a packet stays longer than this delay in the queue, it is dropped.

    Set with class: ns3::TimeValue
    Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    Initial value: +500000000.0ns
    Flags: construct write read
如果分组在队列中保持比此延迟更长,则丢弃该分组。

DropPolicy: Upon enqueue with full queue, drop oldest (DropOldest) or newest (DropNewest) packet

    Set with class: ns3::EnumValue
    Underlying type:
    Initial value: DropNewest
    Flags: construct write read
在满队列入队时,删除最旧(下降最旧)和最新(下降最新)数据包

构造器:

ns3::WifiMacQueue::WifiMacQueue()

public方法:

Ptr< const Packet > Dequeue (WifiMacHeader *hdr)
使队列前面的数据包出队列。
Ptr< const Packet > DequeueByTidAndAddress (WifiMacHeader *hdr, uint8_t tid, 
                                            WifiMacHeader::AddressType type, Mac48Address addr)
搜索和返回,如果存在于此队列中,具有由类型指示的地址的第一分组等于addr,
并且tid等于tid。
此方法从此队列中删除数据包。 通常由ns3 :: EdcaTxopN使用,
以便执行正确的MSDU聚合(A-MSDU)。
Ptr< const Packet > DequeueFirstAvailable (WifiMacHeader *hdr, Time &tStamp, 
                                          const QosBlockedDestinations *blockedPackets)
返回第一个可用的数据包进行传输。
如果分组是具有tid和address1字段等于tid和addr的QoS分组,则分组可能不可用,
该分组索引在BlockAckManager对象中的待定协定。
 所以在从由addr寻址的站接收到ADDBA响应帧之前,不允许发送分组。 此方法从队列中删除数据包。
void    Enqueue (Ptr< const Packet > packet, const WifiMacHeader &hdr)
将给定的数据包及其相应的Wifi Mac头放入队列的末尾。
void    Flush (void)
清空队列。
Mac48Address ns3::WifiMacQueue::GetAddressForPacket (enum WifiMacHeader::AddressType type,PacketQueueI it)
返回给定包的适当地址(由包队列迭代器给出)。
Time    GetMaxDelay (void) const
返回丢弃数据包之前的最大延迟。
uint32_t    GetMaxSize (void) const
返回最大队列大小。
uint32_t GetNPacketsByTidAndAddress (uint8_t tid, WifiMacHeader::AddressType type, Mac48Address addr)
返回tid等于tid的QoS数据包数,以及类型和addr指定的地址。
uint32_t    GetSize (void)
返回当前队列大小。

bool    IsEmpty (void)
返回如果队列为空。

Ptr< const Packet >     Peek (WifiMacHeader *hdr)
在队列前面查看数据包。
数据包不会被删除。

Ptr< const Packet >     PeekByTidAndAddress (WifiMacHeader *hdr, uint8_t tid, 
                                            WifiMacHeader::AddressType type, Mac48Address addr, Time *timestamp)
搜索和返回,如果存在于此队列中,具有由类型指示的地址的第一分组等于addr,并且tid等于tid。
此方法不会从此队列中删除数据包。
通常由ns3 :: EdcaTxopN使用,以便执行正确的MSDU聚合(A-MSDU)。

Ptr< const Packet >     PeekFirstAvailable (WifiMacHeader *hdr, Time &tStamp, 
                                            const QosBlockedDestinations *blockedPackets)
返回第一个可用的数据包进行传输。
该数据包不会从队列中删除。

void    PushFront (Ptr< const Packet > packet, const WifiMacHeader &hdr)
将给定的数据包及其相应的Wifi Mac头放入队列的前面。

bool    Remove (Ptr< const Packet > packet)
如果存在,从队列中删除数据包并返回true。
否则它没有效果,返回false。 在线性时间(O(n))中执行分组的删除。

void    SetMaxDelay (Time delay)
设置丢弃报文之前的最大延迟时间。

void    SetMaxSize (uint32_t maxSize)
设置最大队列大小。

相关文章

  • NS3 WifiMacQueue类API说明

    介绍: 此队列实现(第9.19.2.6节“重传过程”第6段; IEEE 802.11-2012)中描述的超时过程。...

  • NS3 ObjectBase类API说明

    通常作为基类,派生其他类。每个想要在ns-3类型和属性系统中集成的类都应该从这个基类派生。 这个基类提供: 公共方...

  • NS3 Socket类API说明

    源文件位置: src/netwrok/model/socket.hsocket.cc 描述: 一个基于BSD So...

  • NS3 BulkSendApplication类API说明

    源文件位置:src/applications/model/bulk-send-application.hbulk-...

  • NS3 Config类API说明

    源文件位置:src/core/model/config.hconfig.cc 配置仿真参数和跟踪。 用法实例: 1...

  • NS3 PacketSink类API说明

    源文件位置: src/applications/model/packet-sink.hpacket-sink.cc...

  • NS3 GlobalValue类API以及使用说明

    GlobalValue类 位置: core/model/global-value.cc 功能: 可从四个地方获取值...

  • NS3 Ipv4AddressHelper类API说明

    文件位置:/src/internet/helper/ipv4-address-helper.h 一个帮助类,在脚本...

  • NS3 Timer类说明

    官方文档介绍 一个简单的Timer类。定时器用于将延迟保持在一起,延迟到期时调用的函数以及延迟到期时传递给函数的一...

  • NS3 MacRxMiddle类说明

    官方文档说明 该类处理片段的重复检测和重组。 也就是说该类的功能主要是检测节点接收到的分组是否重复,以及是否是分片...

网友评论

    本文标题:NS3 WifiMacQueue类API说明

    本文链接:https://www.haomeiwen.com/subject/owpgnttx.html