A Discrete-Event Network Simulator
API
lr-wpan-mac-trailer.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 The Boeing Company
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author:
18 * kwong yin <kwong-sang.yin@boeing.com>
19 * Sascha Alexander Jopen <jopen@cs.uni-bonn.de>
20 * Erwan Livolant <erwan.livolant@inria.fr>
21 */
22
23#ifndef LR_WPAN_MAC_TRAILER_H
24#define LR_WPAN_MAC_TRAILER_H
25
26#include <ns3/trailer.h>
27
28namespace ns3
29{
30
31class Packet;
32
39{
40 public:
44 static const uint16_t LR_WPAN_MAC_FCS_LENGTH;
45
51 static TypeId GetTypeId();
52
57
58 // Inherited from the Trailer class.
59 TypeId GetInstanceTypeId() const override;
60 void Print(std::ostream& os) const override;
61 uint32_t GetSerializedSize() const override;
62 void Serialize(Buffer::Iterator start) const override;
64
71 uint16_t GetFcs() const;
72
79
89
95 void EnableFcs(bool enable);
96
102 bool IsFcsEnabled();
103
104 private:
114 uint16_t GenerateCrc16(uint8_t* data, int length);
115
119 uint16_t m_fcs;
120
126};
127
128} // namespace ns3
129
130#endif /* LR_WPAN_MAC_TRAILER_H */
iterator in a Buffer instance
Definition: buffer.h:100
Represent the Mac Trailer with the Frame Check Sequence field.
bool m_calcFcs
Only if m_calcFcs is true, FCS values will be calculated and used in the trailer.
uint32_t GetSerializedSize() const override
static TypeId GetTypeId()
Get the type ID.
static const uint16_t LR_WPAN_MAC_FCS_LENGTH
The length in octets of the IEEE 802.15.4 MAC FCS field.
uint16_t GenerateCrc16(uint8_t *data, int length)
Calculate the 16-bit FCS value.
uint16_t m_fcs
The FCS value stored in this trailer.
LrWpanMacTrailer()
Default constructor for a MAC trailer with disabled FCS calculation.
uint32_t Deserialize(Buffer::Iterator start) override
uint16_t GetFcs() const
Get this trailers FCS value.
bool IsFcsEnabled()
Query if FCS calculation is enabled for this trailer.
void SetFcs(Ptr< const Packet > p)
Calculate and set the FCS value based on the given packet.
void Serialize(Buffer::Iterator start) const override
bool CheckFcs(Ptr< const Packet > p)
Check the FCS of a given packet against the FCS value stored in the trailer.
void Print(std::ostream &os) const override
void EnableFcs(bool enable)
Enable or disable FCS calculation for this trailer.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Protocol trailer serialization and deserialization.
Definition: trailer.h:41
a unique identifier for an interface.
Definition: type-id.h:60
Every class exported by the ns3 library is enclosed in the ns3 namespace.
def start()
Definition: core.py:1861
uint8_t data[writeSize]