INET Framework for OMNeT++/OMNEST
inet::ieee80211::Ieee80211MacProtocolPrinter Class Reference

#include <Ieee80211MacProtocolPrinter.h>

Inheritance diagram for inet::ieee80211::Ieee80211MacProtocolPrinter:
inet::ProtocolPrinter

Public Member Functions

virtual void print (const Ptr< const Chunk > &chunk, const Protocol *protocol, const cMessagePrinter::Options *options, Context &context) const override
 Prints the given chunk of protocol according to options into context. More...
 

Member Function Documentation

◆ print()

void inet::ieee80211::Ieee80211MacProtocolPrinter::print ( const Ptr< const Chunk > &  chunk,
const Protocol protocol,
const cMessagePrinter::Options *  options,
Context context 
) const
overridevirtual

Prints the given chunk of protocol according to options into context.

Implements inet::ProtocolPrinter.

20 {
21  if (auto macHeader = dynamicPtrCast<const Ieee80211MacHeader>(chunk)) {
22  context.infoColumn << "WLAN ";
23  if (auto oneAddressHeader = dynamicPtrCast<const Ieee80211OneAddressHeader>(chunk))
24  context.destinationColumn << oneAddressHeader->getReceiverAddress();
25  if (auto twoAddressHeader = dynamicPtrCast<const Ieee80211TwoAddressHeader>(chunk))
26  context.sourceColumn << twoAddressHeader->getTransmitterAddress();
27  switch (macHeader->getType()) {
29  context.typeColumn << "AssocReq"; // TODO
30  break;
31 
33  context.typeColumn << "AssocResp"; // TODO
34  break;
35 
37  context.typeColumn << "ReassocReq"; // TODO
38  break;
39 
41  context.typeColumn << "ReassocResp"; // TODO
42  break;
43 
44  case ST_PROBEREQUEST:
45  context.typeColumn << "ProbeRequest"; // TODO
46  break;
47 
48  case ST_PROBERESPONSE:
49  context.typeColumn << "ProbeResponse"; // TODO
50  break;
51 
52  case ST_BEACON:
53  context.typeColumn << "Beacon"; // TODO
54  break;
55 
56  case ST_ATIM:
57  context.typeColumn << "Atim"; // TODO
58  break;
59 
60  case ST_DISASSOCIATION:
61  context.typeColumn << "Disassoc"; // TODO
62  break;
63 
64  case ST_AUTHENTICATION:
65  context.typeColumn << "Auth"; // TODO
66  break;
67 
69  context.typeColumn << "Deauth"; // TODO
70  break;
71 
72  case ST_ACTION:
73  context.typeColumn << "Action"; // TODO
74  break;
75 
76  case ST_NOACKACTION:
77  context.typeColumn << "Noackaction"; // TODO
78  break;
79 
80  case ST_PSPOLL:
81  context.typeColumn << "Pspoll"; // TODO
82  break;
83 
84  case ST_RTS: {
85  context.typeColumn << "RTS";
86  break;
87  }
88  case ST_CTS:
89  context.typeColumn << "CTS";
90  context.infoColumn << macHeader->getReceiverAddress();
91  break;
92 
93  case ST_ACK:
94  context.typeColumn << "ACK";
95  context.infoColumn << macHeader->getReceiverAddress();
96  break;
97 
98  case ST_BLOCKACK_REQ:
99  context.typeColumn << "BlockAckReq"; // TODO
100  break;
101 
102  case ST_BLOCKACK:
103  context.typeColumn << "BlockAck"; // TODO
104  break;
105 
106  case ST_DATA:
107  case ST_DATA_WITH_QOS:
108  context.typeColumn << "DATA"; // TODO
109  break;
110 
111  case ST_LBMS_REQUEST:
112  context.typeColumn << "LbmsReq"; // TODO
113  break;
114 
115  case ST_LBMS_REPORT:
116  context.typeColumn << "LbmsReport"; // TODO
117  break;
118 
119  default:
120  context.infoColumn << "Type=" << macHeader->getType();
121  break;
122  }
123  }
124  else
125  context.infoColumn << "(IEEE 802.11 Mac) " << chunk;
126 }

The documentation for this class was generated from the following files:
inet::ieee80211::ST_NOACKACTION
@ ST_NOACKACTION
Definition: Ieee80211Frame_m.h:161
inet::ieee80211::ST_ATIM
@ ST_ATIM
Definition: Ieee80211Frame_m.h:156
inet::ieee80211::ST_DATA
@ ST_DATA
Definition: Ieee80211Frame_m.h:168
inet::ieee80211::ST_PSPOLL
@ ST_PSPOLL
Definition: Ieee80211Frame_m.h:162
inet::ieee80211::ST_PROBEREQUEST
@ ST_PROBEREQUEST
Definition: Ieee80211Frame_m.h:153
inet::ieee80211::ST_ACK
@ ST_ACK
Definition: Ieee80211Frame_m.h:165
inet::ieee80211::ST_ACTION
@ ST_ACTION
Definition: Ieee80211Frame_m.h:160
inet::ieee80211::ST_BLOCKACK
@ ST_BLOCKACK
Definition: Ieee80211Frame_m.h:167
inet::ieee80211::ST_LBMS_REPORT
@ ST_LBMS_REPORT
Definition: Ieee80211Frame_m.h:171
inet::ieee80211::ST_REASSOCIATIONRESPONSE
@ ST_REASSOCIATIONRESPONSE
Definition: Ieee80211Frame_m.h:152
inet::ieee80211::ST_ASSOCIATIONREQUEST
@ ST_ASSOCIATIONREQUEST
Definition: Ieee80211Frame_m.h:149
inet::ieee80211::ST_AUTHENTICATION
@ ST_AUTHENTICATION
Definition: Ieee80211Frame_m.h:158
inet::ieee80211::ST_DEAUTHENTICATION
@ ST_DEAUTHENTICATION
Definition: Ieee80211Frame_m.h:159
inet::ieee80211::ST_BEACON
@ ST_BEACON
Definition: Ieee80211Frame_m.h:155
inet::ieee80211::ST_PROBERESPONSE
@ ST_PROBERESPONSE
Definition: Ieee80211Frame_m.h:154
inet::ieee80211::ST_BLOCKACK_REQ
@ ST_BLOCKACK_REQ
Definition: Ieee80211Frame_m.h:166
inet::ieee80211::ST_DISASSOCIATION
@ ST_DISASSOCIATION
Definition: Ieee80211Frame_m.h:157
inet::ieee80211::ST_DATA_WITH_QOS
@ ST_DATA_WITH_QOS
Definition: Ieee80211Frame_m.h:169
inet::ieee80211::ST_REASSOCIATIONREQUEST
@ ST_REASSOCIATIONREQUEST
Definition: Ieee80211Frame_m.h:151
inet::ieee80211::ST_ASSOCIATIONRESPONSE
@ ST_ASSOCIATIONRESPONSE
Definition: Ieee80211Frame_m.h:150
inet::ieee80211::ST_CTS
@ ST_CTS
Definition: Ieee80211Frame_m.h:164
inet::ieee80211::ST_LBMS_REQUEST
@ ST_LBMS_REQUEST
Definition: Ieee80211Frame_m.h:170
inet::ieee80211::ST_RTS
@ ST_RTS
Definition: Ieee80211Frame_m.h:163