/usr/include/ns3.26/ns3/block-ack-agreement.h is in libns3-dev 3.26+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2009 MIRKO BANCHI
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation;
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Author: Mirko Banchi <mk.banchi@gmail.com>
*/
#ifndef BLOCK_ACK_AGREEMENT_H
#define BLOCK_ACK_AGREEMENT_H
#include "ns3/mac48-address.h"
#include "ns3/event-id.h"
namespace ns3 {
/**
* \brief Maintains information for a block ack agreement.
* \ingroup wifi
*/
class BlockAckAgreement
{
friend class MacLow;
public:
BlockAckAgreement ();
/**
* Constructor for BlockAckAgreement with given peer and TID.
*
* \param peer
* \param tid
*/
BlockAckAgreement (Mac48Address peer, uint8_t tid);
~BlockAckAgreement ();
/**
* Set buffer size.
*
* \param bufferSize
*/
void SetBufferSize (uint16_t bufferSize);
/**
* Set timeout.
*
* \param timeout
*/
void SetTimeout (uint16_t timeout);
/**
* Set starting sequence number.
*
* \param seq the starting sequence number
*/
void SetStartingSequence (uint16_t seq);
/**
* Set starting sequence control.
*
* \param seq the starting sequence control
*/
void SetStartingSequenceControl (uint16_t seq);
/**
* Set Block ACK policy to immediate ACK.
*/
void SetImmediateBlockAck (void);
/**
* Set Block ACK policy to delayed ACK.
*/
void SetDelayedBlockAck (void);
/**
* Enable or disable A-MSDU support.
*
* \param supported enable or disable A-MSDU support
*/
void SetAmsduSupport (bool supported);
/**
* Set ending sequence number.
*
* \param seq the ending sequence number
*/
void SetWinEnd (uint16_t seq);
/**
* Return the Traffic ID (TID).
*
* \return TID
*/
uint8_t GetTid (void) const;
/**
* Return the peer address.
*
* \return Mac48Address
*/
Mac48Address GetPeer (void) const;
/**
* Return the buffer size.
*
* \return buffer size
*/
uint16_t GetBufferSize (void) const;
/**
* Return the timeout.
*
* \return timeout
*/
uint16_t GetTimeout (void) const;
/**
* Return the starting squence number.
*
* \return starting sequence number
*/
uint16_t GetStartingSequence (void) const;
/**
* Return the starting sequence control
*
* \return starting sequence control
*/
uint16_t GetStartingSequenceControl (void) const;
/**
* Return the ending sequence number
*
* \return ending sequence number
*/
uint16_t GetWinEnd (void) const;
/**
* Check whether the current ACK policy is immediate block ACK.
*
* \return true if the current ACK policy is immediate block ACK,
* false otherwise
*/
bool IsImmediateBlockAck (void) const;
/**
* Check whether A-MSDU is supported
*
* \return true if A-MSDU is supported,
* false otherwise
*/
bool IsAmsduSupported (void) const;
/**
* Enable or disable HT support.
*
* \param htSupported enable or disable HT support
*/
void SetHtSupported (bool htSupported);
/**
* Check whether HT is supported
*
* \return true if HT is supported,
* false otherwise
*/
bool IsHtSupported (void) const;
protected:
Mac48Address m_peer; //!< Peer address
uint8_t m_amsduSupported; //!< Flag whether MSDU aggregation is supported
uint8_t m_blockAckPolicy; //!< Type of block ack: immediate or delayed
uint8_t m_tid; //!< Traffic ID
uint16_t m_bufferSize; //!< Buffer size
uint16_t m_timeout; //!< Timeout
uint16_t m_startingSeq; //!< Starting squence control
uint16_t m_winEnd; //!< Ending sequence number
uint8_t m_htSupported; //!< Flag whether HT is supported
EventId m_inactivityEvent;
};
} //namespace ns3
#endif /* BLOCK_ACK_AGREEMENT_H */
|