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
: uint8_t
30
{
31
BASIC
,
32
COMPRESSED
,
33
EXTENDED_COMPRESSED
,
34
MULTI_TID
,
35
GCR
,
36
MULTI_STA
37
};
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
*/
45
BlockAckType
();
46
/**
47
* Constructor for BlockAckType with given variant.
48
*
49
* @param v the Block Ack variant
50
*/
51
BlockAckType
(
Variant
v);
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
*/
66
struct
BlockAckReqType
67
{
68
/**
69
* @enum Variant
70
* @brief The BlockAckReq variants
71
*/
72
enum
Variant
: uint8_t
73
{
74
BASIC
,
75
COMPRESSED
,
76
EXTENDED_COMPRESSED
,
77
MULTI_TID
,
78
GCR
79
};
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
*/
88
BlockAckReqType
();
89
/**
90
* Constructor for BlockAckReqType with given variant.
91
*
92
* @param v the Block Ack Request variant
93
*/
94
BlockAckReqType
(
Variant
v);
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
*/
112
std::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
*/
121
std::ostream&
operator<<
(std::ostream& os,
const
BlockAckReqType
& type);
122
123
}
// namespace ns3
124
125
#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:67
ns3::BlockAckReqType::m_nSeqControls
uint8_t m_nSeqControls
Number of included Starting Sequence Control fields.
Definition
block-ack-type.h:82
ns3::BlockAckReqType::BlockAckReqType
BlockAckReqType()
Default constructor for BlockAckReqType.
Definition
block-ack-type.cc:68
ns3::BlockAckReqType::Variant
Variant
The BlockAckReq variants.
Definition
block-ack-type.h:73
ns3::BlockAckReqType::EXTENDED_COMPRESSED
@ EXTENDED_COMPRESSED
Definition
block-ack-type.h:76
ns3::BlockAckReqType::GCR
@ GCR
Definition
block-ack-type.h:78
ns3::BlockAckReqType::BASIC
@ BASIC
Definition
block-ack-type.h:74
ns3::BlockAckReqType::MULTI_TID
@ MULTI_TID
Definition
block-ack-type.h:77
ns3::BlockAckReqType::COMPRESSED
@ COMPRESSED
Definition
block-ack-type.h:75
ns3::BlockAckReqType::m_variant
Variant m_variant
Block Ack Request variant.
Definition
block-ack-type.h:81
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:38
ns3::BlockAckType::m_variant
Variant m_variant
Block Ack variant.
Definition
block-ack-type.h:39
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:36
ns3::BlockAckType::GCR
@ GCR
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_bitmapLen
std::vector< uint8_t > m_bitmapLen
Length (bytes) of included bitmaps.
Definition
block-ack-type.h:40
src
wifi
model
block-ack-type.h
Generated on Thu Dec 12 2024 09:20:55 for ns-3 by
1.11.0