A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
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
16
namespace
ns3
17
{
18
19
/**
20
* \ingroup wifi
21
* The different BlockAck variants.
22
*/
23
struct
BlockAckType
24
{
25
/**
26
* \enum Variant
27
* \brief The BlockAck variants
28
*/
29
enum
Variant
30
{
31
BASIC
,
32
COMPRESSED
,
33
EXTENDED_COMPRESSED
,
34
MULTI_TID
,
35
MULTI_STA
36
};
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
*/
44
BlockAckType
();
45
/**
46
* Constructor for BlockAckType with given variant.
47
*
48
* \param v the Block Ack variant
49
*/
50
BlockAckType
(
Variant
v);
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
*/
65
struct
BlockAckReqType
66
{
67
/**
68
* \enum Variant
69
* \brief The BlockAckReq variants
70
*/
71
enum
Variant
72
{
73
BASIC
,
74
COMPRESSED
,
75
EXTENDED_COMPRESSED
,
76
MULTI_TID
77
};
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
*/
86
BlockAckReqType
();
87
/**
88
* Constructor for BlockAckReqType with given variant.
89
*
90
* \param v the Block Ack Request variant
91
*/
92
BlockAckReqType
(
Variant
v);
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
*/
110
std::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
*/
119
std::ostream&
operator<<
(std::ostream& os,
const
BlockAckReqType
& type);
120
121
}
// namespace ns3
122
123
#endif
/* BLOCK_ACK_TYPE_H */
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition
angles.cc:148
ns3::BlockAckReqType
The different BlockAckRequest variants.
Definition
block-ack-type.h:66
ns3::BlockAckReqType::m_nSeqControls
uint8_t m_nSeqControls
Number of included Starting Sequence Control fields.
Definition
block-ack-type.h:80
ns3::BlockAckReqType::BlockAckReqType
BlockAckReqType()
Default constructor for BlockAckReqType.
Definition
block-ack-type.cc:66
ns3::BlockAckReqType::Variant
Variant
The BlockAckReq variants.
Definition
block-ack-type.h:72
ns3::BlockAckReqType::EXTENDED_COMPRESSED
@ EXTENDED_COMPRESSED
Definition
block-ack-type.h:75
ns3::BlockAckReqType::BASIC
@ BASIC
Definition
block-ack-type.h:73
ns3::BlockAckReqType::MULTI_TID
@ MULTI_TID
Definition
block-ack-type.h:76
ns3::BlockAckReqType::COMPRESSED
@ COMPRESSED
Definition
block-ack-type.h:74
ns3::BlockAckReqType::m_variant
Variant m_variant
Block Ack Request variant.
Definition
block-ack-type.h:79
ns3::BlockAckType
The different BlockAck variants.
Definition
block-ack-type.h:24
ns3::BlockAckType::BlockAckType
BlockAckType()
Default constructor for BlockAckType.
Definition
block-ack-type.cc:37
ns3::BlockAckType::Variant
Variant
The BlockAck variants.
Definition
block-ack-type.h:30
ns3::BlockAckType::COMPRESSED
@ COMPRESSED
Definition
block-ack-type.h:32
ns3::BlockAckType::MULTI_STA
@ MULTI_STA
Definition
block-ack-type.h:35
ns3::BlockAckType::BASIC
@ BASIC
Definition
block-ack-type.h:31
ns3::BlockAckType::MULTI_TID
@ MULTI_TID
Definition
block-ack-type.h:34
ns3::BlockAckType::EXTENDED_COMPRESSED
@ EXTENDED_COMPRESSED
Definition
block-ack-type.h:33
ns3::BlockAckType::m_variant
Variant m_variant
Block Ack variant.
Definition
block-ack-type.h:38
ns3::BlockAckType::m_bitmapLen
std::vector< uint8_t > m_bitmapLen
Length (bytes) of included bitmaps.
Definition
block-ack-type.h:39
src
wifi
model
block-ack-type.h
Generated on Fri Nov 8 2024 13:59:07 for ns-3 by
1.11.0