DESERT 3.5.1
Loading...
Searching...
No Matches
uw-mac-TLohi-tracer.cpp
Go to the documentation of this file.
1//
2// Copyright (c) 2017 Regents of the SIGNET lab, University of Padova.
3// All rights reserved.
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions
7// are met:
8// 1. Redistributions of source code must retain the above copyright
9// notice, this list of conditions and the following disclaimer.
10// 2. Redistributions in binary form must reproduce the above copyright
11// notice, this list of conditions and the following disclaimer in the
12// documentation and/or other materials provided with the distribution.
13// 3. Neither the name of the University of Padova (SIGNET lab) nor the
14// names of its contributors may be used to endorse or promote products
15// derived from this software without specific prior written permission.
16//
17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28//
29
40#include "uw-mac-TLohi.h"
41#include "wake-up-pkt-hdr.h"
42#include <mac.h>
43
47class TLohiTracer : public Tracer
48{
49public:
54
55protected:
61 void format(Packet *p, SAP *sap);
67 char *printType(TLOHI_PKT_TYPE type);
68};
69
71 : Tracer(4)
72{
73}
74
75void
76TLohiTracer::format(Packet *p, SAP *sap)
77{
78 hdr_cmn *ch = hdr_cmn::access(p);
79 hdr_mac *mach = HDR_MAC(p);
80
81 if (ch->ptype() == PT_TLOHI) {
82 hdr_tlohi *tlohih = HDR_TLOHI(p);
83
84 writeTrace(sap,
85 " MACSRC=%d MACDST=%d SN=%d TS=%f TP=%s SZ=%d",
86 mach->macSA(),
87 mach->macDA(),
88 tlohih->sn,
89 tlohih->ts,
90 printType(tlohih->pkt_type),
91 ch->size());
92 }
93
94 else if (ch->ptype() == PT_WKUP) {
95 writeTrace(sap, " TONE");
96 }
97
98 else
99 return;
100}
101
102extern "C" int
104{
105 SAP::addTracer(new TLohiTracer);
106 return 0;
107}
108extern "C" int
113
114char *
116{
117 if (type == DATA_PKT)
118 return "DAT";
119 else if (type == ACK_PKT)
120 return "ACK";
121 else
122 return "ERR";
123}
Class that represents a Tracer for T-LOHI protocol.
void format(Packet *p, SAP *sap)
Format the output for the tracer.
char * printType(TLOHI_PKT_TYPE type)
Print the type of packet.
TLohiTracer()
Constructor of the class.
Struct that defines the header of T-LOHI in the packets.
double ts
packet timestamp, i.e., its generation time)
TLOHI_PKT_TYPE pkt_type
T-LOHI packet type.
int sn
sequence number of this packet
int Uwmactlohitracer_Init()
int Cyguwmactlohitracer_Init()
Provides the declaration of uw-mac-TLohi MAC protocol.
#define HDR_TLOHI(P)
TLOHI_PKT_TYPE
Enumeration that indicates the possibile type of packets in T-LOHI MAC protocol.
Provides the definition of the Wake Up Tone Packet Header.