INET Framework for OMNeT++/OMNEST
inet::GptpPacketSerializer Class Reference

Converts between GptpPacket and binary (network byte order) Gptp packet. More...

#include <GptpPacketSerializer.h>

Inheritance diagram for inet::GptpPacketSerializer:
inet::FieldsChunkSerializer inet::ChunkSerializer

Public Member Functions

 GptpPacketSerializer ()
 
- Public Member Functions inherited from inet::FieldsChunkSerializer
virtual void serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk, b offset, b length) const override
 Serializes a chunk into a stream by writing the bytes representing the chunk at the end of the stream. More...
 
virtual const Ptr< Chunkdeserialize (MemoryInputStream &stream, const std::type_info &typeInfo) const override
 Deserializes a chunk from a stream by reading the bytes at the current position of the stream. More...
 

Protected Member Functions

virtual void serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk) const override
 Serializes a chunk into a stream by writing all bytes representing the chunk at the end of the stream. More...
 
virtual const Ptr< Chunkdeserialize (MemoryInputStream &stream) const override
 Deserializes a chunk from a stream by reading the bytes at the current position of the stream. More...
 
void readGptpBase (MemoryInputStream &stream, GptpBase &gptpPacket) const
 
void writeGptpBase (MemoryOutputStream &stream, const GptpBase &gptpPacket) const
 
void readGptpFollowUpPart (MemoryInputStream &stream, GptpFollowUp &gptpPacket) const
 
void writeGptpFollowUpPart (MemoryOutputStream &stream, const GptpFollowUp &gptpPacket) const
 
void readGptpPdelayReqPart (MemoryInputStream &stream, GptpPdelayReq &gptpPacket) const
 
void writeGptpPdelayReqPart (MemoryOutputStream &stream, const GptpPdelayReq &gptpPacket) const
 
void readGptpPdelayRespPart (MemoryInputStream &stream, GptpPdelayResp &gptpPacket) const
 
void writeGptpPdelayRespPart (MemoryOutputStream &stream, const GptpPdelayResp &gptpPacket) const
 
void readGptpPdelayRespFollowUpPart (MemoryInputStream &stream, GptpPdelayRespFollowUp &gptpPacket) const
 
void writeGptpPdelayRespFollowUpPart (MemoryOutputStream &stream, const GptpPdelayRespFollowUp &gptpPacket) const
 
void readGptpSyncPart (MemoryInputStream &stream, GptpSync &gptpPacket) const
 
void writeGptpSyncPart (MemoryOutputStream &stream, const GptpSync &gptpPacket) const
 
void readGptpFollowUpInformationTlv (MemoryInputStream &stream, GptpFollowUpInformationTlv &gptpPacket) const
 
void writeGptpFollowUpInformationTlv (MemoryOutputStream &stream, const GptpFollowUpInformationTlv &gptpPacket) const
 
clocktime_t readClock8 (MemoryInputStream &stream) const
 
void writeClock8 (MemoryOutputStream &stream, const clocktime_t &clock) const
 
clocktime_t readTimestamp (MemoryInputStream &stream) const
 
void writeTimestamp (MemoryOutputStream &stream, const clocktime_t &clock) const
 
clocktime_t readScaledNS (MemoryInputStream &stream) const
 
void writeScaledNS (MemoryOutputStream &stream, const clocktime_t &clock) const
 
PortIdentity readPortIdentity (MemoryInputStream &stream) const
 
void writePortIdentity (MemoryOutputStream &stream, const PortIdentity &portIdentity) const
 

Additional Inherited Members

- Static Public Attributes inherited from inet::ChunkSerializer
static b totalSerializedLength = b(0)
 
static b totalDeserializedLength = b(0)
 

Detailed Description

Converts between GptpPacket and binary (network byte order) Gptp packet.

Constructor & Destructor Documentation

◆ GptpPacketSerializer()

inet::GptpPacketSerializer::GptpPacketSerializer ( )
inline
60 : FieldsChunkSerializer() {}

Member Function Documentation

◆ deserialize()

const Ptr< Chunk > inet::GptpPacketSerializer::deserialize ( MemoryInputStream stream) const
overrideprotectedvirtual

Deserializes a chunk from a stream by reading the bytes at the current position of the stream.

The current stream position is updated according to the length of the returned chunk.

Implements inet::FieldsChunkSerializer.

264 {
265  auto startPos = stream.getPosition();
266  stream.readUint4();
267  GptpMessageType type = static_cast<GptpMessageType>(stream.readUint4());
268  stream.seek(startPos);
269 
270  switch(type) {
271  case GPTPTYPE_FOLLOW_UP: {
272  auto gptpPacket = makeShared<GptpFollowUp>();
273  readGptpBase(stream, *gptpPacket.get());
274  readGptpFollowUpPart(stream, *gptpPacket.get());
275  return gptpPacket;
276  }
277  case GPTPTYPE_PDELAY_REQ: {
278  auto gptpPacket = makeShared<GptpPdelayReq>();
279  readGptpBase(stream, *gptpPacket.get());
280  readGptpPdelayReqPart(stream, *gptpPacket.get());
281  return gptpPacket;
282  }
283  case GPTPTYPE_PDELAY_RESP: {
284  auto gptpPacket = makeShared<GptpPdelayResp>();
285  readGptpBase(stream, *gptpPacket.get());
286  readGptpPdelayRespPart(stream, *gptpPacket.get());
287  return gptpPacket;
288  }
290  auto gptpPacket = makeShared<GptpPdelayRespFollowUp>();
291  readGptpBase(stream, *gptpPacket.get());
292  readGptpPdelayRespFollowUpPart(stream, *gptpPacket.get());
293  return gptpPacket;
294  }
295  case GPTPTYPE_SYNC: {
296  auto gptpPacket = makeShared<GptpSync>();
297  readGptpBase(stream, *gptpPacket.get());
298  readGptpSyncPart(stream, *gptpPacket.get());
299  return gptpPacket;
300  }
301  default:
302  throw cRuntimeError("unknown GptpMessageType");
303  }
304 }

◆ readClock8()

clocktime_t inet::GptpPacketSerializer::readClock8 ( MemoryInputStream stream) const
protected
22 {
23  int64_t ns16 = stream.readUint64Be();
24  simtime_t t1(ns16>>16, SIMTIME_NS);
25  ns16 = (ns16 & 0xFFFF) * SimTime::getScale() / 1000000000LL;
26  return SIMTIME_AS_CLOCKTIME(t1 + SimTime::fromRaw(ns16>>16));
27 }

Referenced by readGptpBase().

◆ readGptpBase()

void inet::GptpPacketSerializer::readGptpBase ( MemoryInputStream stream,
GptpBase gptpPacket 
) const
protected
121 {
122  gptpPacket.setMajorSdoId(stream.readUint4());
123  gptpPacket.setMessageType(static_cast<GptpMessageType>(stream.readUint4()));
124  gptpPacket.setMinorVersionPTP(stream.readUint4());
125  gptpPacket.setVersionPTP(stream.readUint4());
126  gptpPacket.setMessageLengthField(stream.readUint16Be());
127  gptpPacket.setDomainNumber(stream.readUint8());
128  gptpPacket.setMinorSdoId(stream.readUint8());
129  gptpPacket.setFlags(stream.readUint16Be());
130  gptpPacket.setCorrectionField(readClock8(stream));
131  gptpPacket.setMessageTypeSpecific(stream.readUint32Be());
132  gptpPacket.setSourcePortIdentity(readPortIdentity(stream));
133  gptpPacket.setSequenceId(stream.readUint16Be());
134  gptpPacket.setControlField(stream.readUint8());
135  gptpPacket.setLogMessageInterval(stream.readUint8());
136 }

Referenced by deserialize().

◆ readGptpFollowUpInformationTlv()

void inet::GptpPacketSerializer::readGptpFollowUpInformationTlv ( MemoryInputStream stream,
GptpFollowUpInformationTlv gptpPacket 
) const
protected
203 {
204  tlv.setTlvType((GptpTlvType)stream.readUint16Be());
205  tlv.setLengthField(stream.readUint16Be());
206  tlv.setOrganizationId(stream.readUint24Be());
207  tlv.setOrganizationSubType(stream.readUint24Be());
208  tlv.setCumulativeScaledRateOffset(stream.readUint32Be());
209  tlv.setGmTimeBaseIndicator(stream.readUint16Be());
210  tlv.setLastGmPhaseChange(readScaledNS(stream));
211  tlv.setScaledLastGmFreqChange(stream.readUint32Be());
212 }

Referenced by readGptpFollowUpPart().

◆ readGptpFollowUpPart()

void inet::GptpPacketSerializer::readGptpFollowUpPart ( MemoryInputStream stream,
GptpFollowUp gptpPacket 
) const
protected
139 {
140  gptpPacket.setPreciseOriginTimestamp(readTimestamp(stream));
141  readGptpFollowUpInformationTlv(stream, gptpPacket.getFollowUpInformationTLVForUpdate());
142 }

Referenced by deserialize().

◆ readGptpPdelayReqPart()

void inet::GptpPacketSerializer::readGptpPdelayReqPart ( MemoryInputStream stream,
GptpPdelayReq gptpPacket 
) const
protected
151 {
152  stream.readByteRepeatedly(0, 10);
153  stream.readByteRepeatedly(0, 10);
154 }

Referenced by deserialize().

◆ readGptpPdelayRespFollowUpPart()

void inet::GptpPacketSerializer::readGptpPdelayRespFollowUpPart ( MemoryInputStream stream,
GptpPdelayRespFollowUp gptpPacket 
) const
protected
175 {
176  gptpPacket.setResponseOriginTimestamp(readTimestamp(stream));
177  gptpPacket.setRequestingPortIdentity(readPortIdentity(stream));
178 }

Referenced by deserialize().

◆ readGptpPdelayRespPart()

void inet::GptpPacketSerializer::readGptpPdelayRespPart ( MemoryInputStream stream,
GptpPdelayResp gptpPacket 
) const
protected
163 {
164  gptpPacket.setRequestReceiptTimestamp(readTimestamp(stream));
165  gptpPacket.setRequestingPortIdentity(readPortIdentity(stream));
166 }

Referenced by deserialize().

◆ readGptpSyncPart()

void inet::GptpPacketSerializer::readGptpSyncPart ( MemoryInputStream stream,
GptpSync gptpPacket 
) const
protected
187 {
188  if (gptpPacket.getFlags() & twoStepFlag)
189  stream.readByteRepeatedly(0, 10); // read "reserved"
190  else
191  throw cRuntimeError("The GptpSync without twoStepFlag is unimplemented yet");
192 }

Referenced by deserialize().

◆ readPortIdentity()

PortIdentity inet::GptpPacketSerializer::readPortIdentity ( MemoryInputStream stream) const
protected
95 {
96  PortIdentity portIdentity;
97  portIdentity.clockIdentity = stream.readUint64Be();
98  portIdentity.portNumber = stream.readUint16Be();
99  return portIdentity;
100 }

Referenced by readGptpBase(), readGptpPdelayRespFollowUpPart(), and readGptpPdelayRespPart().

◆ readScaledNS()

clocktime_t inet::GptpPacketSerializer::readScaledNS ( MemoryInputStream stream) const
protected
62 {
63  // The ScaledNs type represents signed values of time and time interval in units of 2^–16 ns.
64  // 12 bytes
65  int32_t x = stream.readUint32Be();
66  int64_t ns16 = stream.readUint64Be();
67  if ((ns16 < 0 && x != -1) || (ns16 >= 0 && x != 0))
68  throw cRuntimeError("too big number");
69  simtime_t t1(ns16>>16, SIMTIME_NS);
70  ns16 = (ns16 & 0xFFFF) * SimTime::getScale() / 1000000000LL;
71  return SIMTIME_AS_CLOCKTIME(t1 + SimTime::fromRaw(ns16>>16));
72 }

Referenced by readGptpFollowUpInformationTlv().

◆ readTimestamp()

clocktime_t inet::GptpPacketSerializer::readTimestamp ( MemoryInputStream stream) const
protected
41 {
42  // 10 bytes
43  int64_t s = stream.readUint48Be();
44  int64_t ns = stream.readUint32Be();
45  simtime_t t1(s, SIMTIME_S);
46  simtime_t t2(ns, SIMTIME_NS);
47  return SIMTIME_AS_CLOCKTIME(t1 + t2);
48 }

Referenced by readGptpFollowUpPart(), readGptpPdelayRespFollowUpPart(), and readGptpPdelayRespPart().

◆ serialize()

void inet::GptpPacketSerializer::serialize ( MemoryOutputStream stream,
const Ptr< const Chunk > &  chunk 
) const
overrideprotectedvirtual

Serializes a chunk into a stream by writing all bytes representing the chunk at the end of the stream.

Implements inet::FieldsChunkSerializer.

227 {
228  const auto& gptpPacket = staticPtrCast<const GptpBase>(chunk);
229  writeGptpBase(stream, *gptpPacket.get());
230 
231  // TODO Type-specific code:
232  switch(gptpPacket->getMessageType()) {
233  case GPTPTYPE_FOLLOW_UP: {
234  const auto& gptp = CHK(dynamicPtrCast<const GptpFollowUp>(gptpPacket));
235  writeGptpFollowUpPart(stream, *gptp.get());
236  break;
237  }
238  case GPTPTYPE_PDELAY_REQ: {
239  const auto& gptp = CHK(dynamicPtrCast<const GptpPdelayReq>(gptpPacket));
240  writeGptpPdelayReqPart(stream, *gptp.get());
241  break;
242  }
243  case GPTPTYPE_PDELAY_RESP: {
244  const auto& gptp = CHK(dynamicPtrCast<const GptpPdelayResp>(gptpPacket));
245  writeGptpPdelayRespPart(stream, *gptp.get());
246  break;
247  }
249  const auto& gptp = CHK(dynamicPtrCast<const GptpPdelayRespFollowUp>(gptpPacket));
250  writeGptpPdelayRespFollowUpPart(stream, *gptp.get());
251  break;
252  }
253  case GPTPTYPE_SYNC: {
254  const auto& gptp = CHK(dynamicPtrCast<const GptpSync>(gptpPacket));
255  writeGptpSyncPart(stream, *gptp.get());
256  break;
257  }
258  default:
259  throw cRuntimeError("unknown GptpMessageType");
260  }
261 }

◆ writeClock8()

void inet::GptpPacketSerializer::writeClock8 ( MemoryOutputStream stream,
const clocktime_t clock 
) const
protected
30 {
31  int64_t outValue;
32  simtime_t outRemainder;
33  simtime_t t = CLOCKTIME_AS_SIMTIME(clock);
34  t.split(SIMTIME_NS, outValue, outRemainder);
35  outValue <<= 16;
36  int64_t ns16 = outRemainder.raw() * 1000000000LL / SimTime::getScale();
37  stream.writeUint64Be(outValue + ns16);
38 }

Referenced by writeGptpBase().

◆ writeGptpBase()

void inet::GptpPacketSerializer::writeGptpBase ( MemoryOutputStream stream,
const GptpBase gptpPacket 
) const
protected
103 {
104  stream.writeUint4(gptpPacket.getMajorSdoId());
105  stream.writeUint4((int8_t)(gptpPacket.getMessageType()));
106  stream.writeUint4(gptpPacket.getMinorVersionPTP());
107  stream.writeUint4(gptpPacket.getVersionPTP());
108  stream.writeUint16Be(gptpPacket.getMessageLengthField());
109  stream.writeUint8(gptpPacket.getDomainNumber());
110  stream.writeUint8(gptpPacket.getMinorSdoId());
111  stream.writeUint16Be(gptpPacket.getFlags());
112  writeClock8(stream, gptpPacket.getCorrectionField());
113  stream.writeUint32Be(gptpPacket.getMessageTypeSpecific());
114  writePortIdentity(stream, gptpPacket.getSourcePortIdentity());
115  stream.writeUint16Be(gptpPacket.getSequenceId());
116  stream.writeUint8(gptpPacket.getControlField());
117  stream.writeUint8(gptpPacket.getLogMessageInterval());
118 }

Referenced by serialize().

◆ writeGptpFollowUpInformationTlv()

void inet::GptpPacketSerializer::writeGptpFollowUpInformationTlv ( MemoryOutputStream stream,
const GptpFollowUpInformationTlv gptpPacket 
) const
protected
215 {
216  stream.writeUint16Be(tlv.getTlvType());
217  stream.writeUint16Be(tlv.getLengthField());
218  stream.writeUint24Be(tlv.getOrganizationId());
219  stream.writeUint24Be(tlv.getOrganizationSubType());
220  stream.writeUint32Be(tlv.getCumulativeScaledRateOffset());
221  stream.writeUint16Be(tlv.getGmTimeBaseIndicator());
222  writeScaledNS(stream, tlv.getLastGmPhaseChange());
223  stream.writeUint32Be(tlv.getScaledLastGmFreqChange());
224 }

Referenced by writeGptpFollowUpPart().

◆ writeGptpFollowUpPart()

void inet::GptpPacketSerializer::writeGptpFollowUpPart ( MemoryOutputStream stream,
const GptpFollowUp gptpPacket 
) const
protected
145 {
146  writeTimestamp(stream, gptpPacket.getPreciseOriginTimestamp());
147  writeGptpFollowUpInformationTlv(stream, gptpPacket.getFollowUpInformationTLV());
148 }

Referenced by serialize().

◆ writeGptpPdelayReqPart()

void inet::GptpPacketSerializer::writeGptpPdelayReqPart ( MemoryOutputStream stream,
const GptpPdelayReq gptpPacket 
) const
protected
157 {
158  stream.writeByteRepeatedly(0, 10);
159  stream.writeByteRepeatedly(0, 10);
160 }

Referenced by serialize().

◆ writeGptpPdelayRespFollowUpPart()

void inet::GptpPacketSerializer::writeGptpPdelayRespFollowUpPart ( MemoryOutputStream stream,
const GptpPdelayRespFollowUp gptpPacket 
) const
protected
181 {
182  writeTimestamp(stream, gptpPacket.getResponseOriginTimestamp());
183  writePortIdentity(stream, gptpPacket.getRequestingPortIdentity());
184 }

Referenced by serialize().

◆ writeGptpPdelayRespPart()

void inet::GptpPacketSerializer::writeGptpPdelayRespPart ( MemoryOutputStream stream,
const GptpPdelayResp gptpPacket 
) const
protected
169 {
170  writeTimestamp(stream, gptpPacket.getRequestReceiptTimestamp());
171  writePortIdentity(stream, gptpPacket.getRequestingPortIdentity());
172 }

Referenced by serialize().

◆ writeGptpSyncPart()

void inet::GptpPacketSerializer::writeGptpSyncPart ( MemoryOutputStream stream,
const GptpSync gptpPacket 
) const
protected
195 {
196  if (gptpPacket.getFlags() & twoStepFlag)
197  stream.writeByteRepeatedly(0, 10); // write "reserved"
198  else
199  throw cRuntimeError("The GptpSync without twoStepFlag is unimplemented yet");
200 }

Referenced by serialize().

◆ writePortIdentity()

void inet::GptpPacketSerializer::writePortIdentity ( MemoryOutputStream stream,
const PortIdentity portIdentity 
) const
protected
89 {
90  stream.writeUint64Be(portIdentity.clockIdentity);
91  stream.writeUint16Be(portIdentity.portNumber);
92 }

Referenced by writeGptpBase(), writeGptpPdelayRespFollowUpPart(), and writeGptpPdelayRespPart().

◆ writeScaledNS()

void inet::GptpPacketSerializer::writeScaledNS ( MemoryOutputStream stream,
const clocktime_t clock 
) const
protected
75 {
76  // The ScaledNs type represents signed values of time and time interval in units of 2^–16 ns.
77  // 12 bytes
78  simtime_t t = CLOCKTIME_AS_SIMTIME(clock);
79  int64_t outValue;
80  simtime_t outRemainder;
81  t.split(SIMTIME_NS, outValue, outRemainder);
82  outValue <<= 16;
83  int64_t ns16 = outRemainder.raw() * 1000000000LL / SimTime::getScale();
84  stream.writeUint32Be(clock >= CLOCKTIME_ZERO ? 0 : 0xFFFFFFFF);
85  stream.writeUint64Be(outValue + ns16);
86 }

Referenced by writeGptpFollowUpInformationTlv().

◆ writeTimestamp()

void inet::GptpPacketSerializer::writeTimestamp ( MemoryOutputStream stream,
const clocktime_t clock 
) const
protected
51 {
52  // 10 bytes
53  simtime_t t = CLOCKTIME_AS_SIMTIME(clock);
54  int64_t outValue;
55  t.split(SIMTIME_S, outValue, t);
56  stream.writeUint48Be(outValue);
57  t.split(SIMTIME_NS, outValue, t);
58  stream.writeUint32Be(outValue);
59 }

Referenced by writeGptpFollowUpPart(), writeGptpPdelayRespFollowUpPart(), and writeGptpPdelayRespPart().


The documentation for this class was generated from the following files:
CHK
#define CHK(x)
Definition: INETDefs.h:87
inet::GPTPTYPE_PDELAY_RESP_FOLLOW_UP
@ GPTPTYPE_PDELAY_RESP_FOLLOW_UP
Definition: GptpPacket_m.h:137
inet::GptpPacketSerializer::readGptpFollowUpInformationTlv
void readGptpFollowUpInformationTlv(MemoryInputStream &stream, GptpFollowUpInformationTlv &gptpPacket) const
Definition: GptpPacketSerializer.cc:202
inet::GptpPacketSerializer::readGptpPdelayRespPart
void readGptpPdelayRespPart(MemoryInputStream &stream, GptpPdelayResp &gptpPacket) const
Definition: GptpPacketSerializer.cc:162
inet::GptpTlvType
GptpTlvType
Enum generated from inet/linklayer/ieee8021as/GptpPacket.msg:86 by opp_msgtool.
Definition: GptpPacket_m.h:213
inet::GptpPacketSerializer::readPortIdentity
PortIdentity readPortIdentity(MemoryInputStream &stream) const
Definition: GptpPacketSerializer.cc:94
inet::GptpPacketSerializer::writeGptpBase
void writeGptpBase(MemoryOutputStream &stream, const GptpBase &gptpPacket) const
Definition: GptpPacketSerializer.cc:102
CLOCKTIME_AS_SIMTIME
#define CLOCKTIME_AS_SIMTIME(x)
Definition: contract/ClockTime.h:19
inet::GptpPacketSerializer::writeClock8
void writeClock8(MemoryOutputStream &stream, const clocktime_t &clock) const
Definition: GptpPacketSerializer.cc:29
inet::GPTPTYPE_PDELAY_REQ
@ GPTPTYPE_PDELAY_REQ
Definition: GptpPacket_m.h:135
inet::GptpPacketSerializer::readGptpFollowUpPart
void readGptpFollowUpPart(MemoryInputStream &stream, GptpFollowUp &gptpPacket) const
Definition: GptpPacketSerializer.cc:138
inet::GPTPTYPE_FOLLOW_UP
@ GPTPTYPE_FOLLOW_UP
Definition: GptpPacket_m.h:134
inet::GptpPacketSerializer::readGptpBase
void readGptpBase(MemoryInputStream &stream, GptpBase &gptpPacket) const
Definition: GptpPacketSerializer.cc:120
inet::GptpPacketSerializer::writeScaledNS
void writeScaledNS(MemoryOutputStream &stream, const clocktime_t &clock) const
Definition: GptpPacketSerializer.cc:74
CLOCKTIME_ZERO
#define CLOCKTIME_ZERO
Constant for zero simulation time.
Definition: contract/ClockTime.h:36
inet::GptpPacketSerializer::readClock8
clocktime_t readClock8(MemoryInputStream &stream) const
Definition: GptpPacketSerializer.cc:21
inet::GptpPacketSerializer::writePortIdentity
void writePortIdentity(MemoryOutputStream &stream, const PortIdentity &portIdentity) const
Definition: GptpPacketSerializer.cc:88
inet::GptpPacketSerializer::readGptpPdelayRespFollowUpPart
void readGptpPdelayRespFollowUpPart(MemoryInputStream &stream, GptpPdelayRespFollowUp &gptpPacket) const
Definition: GptpPacketSerializer.cc:174
SIMTIME_AS_CLOCKTIME
#define SIMTIME_AS_CLOCKTIME(x)
Definition: contract/ClockTime.h:20
inet::units::values::s
value< double, units::s > s
Definition: Units.h:1235
inet::GptpPacketSerializer::writeGptpFollowUpPart
void writeGptpFollowUpPart(MemoryOutputStream &stream, const GptpFollowUp &gptpPacket) const
Definition: GptpPacketSerializer.cc:144
inet::GptpMessageType
GptpMessageType
Enum generated from inet/linklayer/ieee8021as/GptpPacket.msg:59 by opp_msgtool.
Definition: GptpPacket_m.h:132
inet::GptpPacketSerializer::writeGptpSyncPart
void writeGptpSyncPart(MemoryOutputStream &stream, const GptpSync &gptpPacket) const
Definition: GptpPacketSerializer.cc:194
inet::GptpPacketSerializer::writeGptpPdelayRespPart
void writeGptpPdelayRespPart(MemoryOutputStream &stream, const GptpPdelayResp &gptpPacket) const
Definition: GptpPacketSerializer.cc:168
type
removed type
Definition: IUdp-gates.txt:7
inet::GptpPacketSerializer::readScaledNS
clocktime_t readScaledNS(MemoryInputStream &stream) const
Definition: GptpPacketSerializer.cc:61
inet::GptpPacketSerializer::readTimestamp
clocktime_t readTimestamp(MemoryInputStream &stream) const
Definition: GptpPacketSerializer.cc:40
inet::GptpPacketSerializer::readGptpPdelayReqPart
void readGptpPdelayReqPart(MemoryInputStream &stream, GptpPdelayReq &gptpPacket) const
Definition: GptpPacketSerializer.cc:150
inet::GptpPacketSerializer::writeGptpPdelayReqPart
void writeGptpPdelayReqPart(MemoryOutputStream &stream, const GptpPdelayReq &gptpPacket) const
Definition: GptpPacketSerializer.cc:156
inet::twoStepFlag
@ twoStepFlag
Definition: GptpPacket_m.h:184
inet::GPTPTYPE_SYNC
@ GPTPTYPE_SYNC
Definition: GptpPacket_m.h:133
inet::GptpPacketSerializer::writeGptpFollowUpInformationTlv
void writeGptpFollowUpInformationTlv(MemoryOutputStream &stream, const GptpFollowUpInformationTlv &gptpPacket) const
Definition: GptpPacketSerializer.cc:214
inet::GptpPacketSerializer::writeTimestamp
void writeTimestamp(MemoryOutputStream &stream, const clocktime_t &clock) const
Definition: GptpPacketSerializer.cc:50
inet::GptpPacketSerializer::readGptpSyncPart
void readGptpSyncPart(MemoryInputStream &stream, GptpSync &gptpPacket) const
Definition: GptpPacketSerializer.cc:186
inet::GPTPTYPE_PDELAY_RESP
@ GPTPTYPE_PDELAY_RESP
Definition: GptpPacket_m.h:136
inet::GptpPacketSerializer::writeGptpPdelayRespFollowUpPart
void writeGptpPdelayRespFollowUpPart(MemoryOutputStream &stream, const GptpPdelayRespFollowUp &gptpPacket) const
Definition: GptpPacketSerializer.cc:180
inet::units::units::ns
nano< s >::type ns
Definition: Units.h:1074