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 */
38
39 Variant m_variant; //!< Block Ack variant
40 std::vector<uint8_t> m_bitmapLen; //!< Length (bytes) of included bitmaps
41
42 /**
43 * Default constructor for BlockAckType.
44 */
46 /**
47 * Constructor for BlockAckType with given variant.
48 *
49 * @param v the Block Ack variant
50 */
52 /**
53 * Constructor for BlockAckType with given variant
54 * and bitmap length.
55 *
56 * @param v the Block Ack variant
57 * @param l the length (bytes) of included bitmaps
58 */
59 BlockAckType(Variant v, std::vector<uint8_t> l);
60};
61
62/**
63 * @ingroup wifi
64 * The different BlockAckRequest variants.
65 */
67{
68 /**
69 * @enum Variant
70 * @brief The BlockAckReq variants
71 */
80
81 Variant m_variant; //!< Block Ack Request variant
82 uint8_t m_nSeqControls; //!< Number of included Starting Sequence Control fields.
83 //!< This member is added for future support of Multi-TID BARs
84
85 /**
86 * Default constructor for BlockAckReqType.
87 */
89 /**
90 * Constructor for BlockAckReqType with given variant.
91 *
92 * @param v the Block Ack Request variant
93 */
95 /**
96 * Constructor for BlockAckReqType with given variant
97 * and number of SSC fields.
98 *
99 * @param v the Block Ack Request variant
100 * @param nSeqControls the number of included Starting Sequence Control fields
101 */
102 BlockAckReqType(Variant v, uint8_t nSeqControls);
103};
104
105/**
106 * Serialize BlockAckType to ostream in a human-readable form.
107 *
108 * @param os std::ostream
109 * @param type block ack type
110 * @return std::ostream
111 */
112std::ostream& operator<<(std::ostream& os, const BlockAckType& type);
113
114/**
115 * Serialize BlockAckReqType to ostream in a human-readable form.
116 *
117 * @param os std::ostream
118 * @param type block ack request type
119 * @return std::ostream
120 */
121std::ostream& operator<<(std::ostream& os, const BlockAckReqType& type);
122
123} // namespace ns3
124
125#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 m_variant
Block Ack variant.
Variant
The BlockAck variants.
std::vector< uint8_t > m_bitmapLen
Length (bytes) of included bitmaps.