A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
block-ack-type.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Sébastien Deronne <sebastien.deronne@gmail.com>
7 */
8
9#ifndef BLOCK_ACK_TYPE_H
10#define BLOCK_ACK_TYPE_H
11
12#include <cstdint>
13#include <ostream>
14#include <vector>
15
16namespace ns3
17{
18
19/**
20 * \ingroup wifi
21 * The different BlockAck variants.
22 */
24{
25 /**
26 * \enum Variant
27 * \brief The BlockAck variants
28 */
37
38 Variant m_variant; //!< Block Ack variant
39 std::vector<uint8_t> m_bitmapLen; //!< Length (bytes) of included bitmaps
40
41 /**
42 * Default constructor for BlockAckType.
43 */
45 /**
46 * Constructor for BlockAckType with given variant.
47 *
48 * \param v the Block Ack variant
49 */
51 /**
52 * Constructor for BlockAckType with given variant
53 * and bitmap length.
54 *
55 * \param v the Block Ack variant
56 * \param l the length (bytes) of included bitmaps
57 */
58 BlockAckType(Variant v, std::vector<uint8_t> l);
59};
60
61/**
62 * \ingroup wifi
63 * The different BlockAckRequest variants.
64 */
66{
67 /**
68 * \enum Variant
69 * \brief The BlockAckReq variants
70 */
78
79 Variant m_variant; //!< Block Ack Request variant
80 uint8_t m_nSeqControls; //!< Number of included Starting Sequence Control fields.
81 //!< This member is added for future support of Multi-TID BARs
82
83 /**
84 * Default constructor for BlockAckReqType.
85 */
87 /**
88 * Constructor for BlockAckReqType with given variant.
89 *
90 * \param v the Block Ack Request variant
91 */
93 /**
94 * Constructor for BlockAckReqType with given variant
95 * and number of SSC fields.
96 *
97 * \param v the Block Ack Request variant
98 * \param nSeqControls the number of included Starting Sequence Control fields
99 */
100 BlockAckReqType(Variant v, uint8_t nSeqControls);
101};
102
103/**
104 * Serialize BlockAckType to ostream in a human-readable form.
105 *
106 * \param os std::ostream
107 * \param type block ack type
108 * \return std::ostream
109 */
110std::ostream& operator<<(std::ostream& os, const BlockAckType& type);
111
112/**
113 * Serialize BlockAckReqType to ostream in a human-readable form.
114 *
115 * \param os std::ostream
116 * \param type block ack request type
117 * \return std::ostream
118 */
119std::ostream& operator<<(std::ostream& os, const BlockAckReqType& type);
120
121} // namespace ns3
122
123#endif /* BLOCK_ACK_TYPE_H */
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition angles.cc:148
The different BlockAckRequest variants.
uint8_t m_nSeqControls
Number of included Starting Sequence Control fields.
BlockAckReqType()
Default constructor for BlockAckReqType.
Variant
The BlockAckReq variants.
Variant m_variant
Block Ack Request variant.
The different BlockAck variants.
BlockAckType()
Default constructor for BlockAckType.
Variant
The BlockAck variants.
Variant m_variant
Block Ack variant.
std::vector< uint8_t > m_bitmapLen
Length (bytes) of included bitmaps.