View | Details | Raw Unified | Return to bug 2078
Collapse All | Expand All

(-)a/src/network/model/packet.cc (-5 / +18 lines)
 Lines 138-143    Link Here 
138
     * global UID
138
     * global UID
139
     */
139
     */
140
    m_metadata (static_cast<uint64_t> (Simulator::GetSystemId ()) << 32 | m_globalUid, 0),
140
    m_metadata (static_cast<uint64_t> (Simulator::GetSystemId ()) << 32 | m_globalUid, 0),
141
    m_dirtyMetadata (false),
141
    m_nixVector (0)
142
    m_nixVector (0)
142
{
143
{
143
  m_globalUid++;
144
  m_globalUid++;
 Lines 147-153    Link Here 
147
  : m_buffer (o.m_buffer),
148
  : m_buffer (o.m_buffer),
148
    m_byteTagList (o.m_byteTagList),
149
    m_byteTagList (o.m_byteTagList),
149
    m_packetTagList (o.m_packetTagList),
150
    m_packetTagList (o.m_packetTagList),
150
    m_metadata (o.m_metadata)
151
    m_metadata (o.m_metadata),
152
    m_dirtyMetadata (o.m_dirtyMetadata)
151
{
153
{
152
  o.m_nixVector ? m_nixVector = o.m_nixVector->Copy ()
154
  o.m_nixVector ? m_nixVector = o.m_nixVector->Copy ()
153
    : m_nixVector = 0;
155
    : m_nixVector = 0;
 Lines 164-169    Link Here 
164
  m_byteTagList = o.m_byteTagList;
166
  m_byteTagList = o.m_byteTagList;
165
  m_packetTagList = o.m_packetTagList;
167
  m_packetTagList = o.m_packetTagList;
166
  m_metadata = o.m_metadata;
168
  m_metadata = o.m_metadata;
169
  m_dirtyMetadata = o.m_dirtyMetadata;
167
  o.m_nixVector ? m_nixVector = o.m_nixVector->Copy () 
170
  o.m_nixVector ? m_nixVector = o.m_nixVector->Copy () 
168
    : m_nixVector = 0;
171
    : m_nixVector = 0;
169
  return *this;
172
  return *this;
 Lines 180-185    Link Here 
180
     * global UID
183
     * global UID
181
     */
184
     */
182
    m_metadata (static_cast<uint64_t> (Simulator::GetSystemId ()) << 32 | m_globalUid, size),
185
    m_metadata (static_cast<uint64_t> (Simulator::GetSystemId ()) << 32 | m_globalUid, size),
186
    m_dirtyMetadata (false),
183
    m_nixVector (0)
187
    m_nixVector (0)
184
{
188
{
185
  m_globalUid++;
189
  m_globalUid++;
 Lines 189-194    Link Here 
189
    m_byteTagList (),
193
    m_byteTagList (),
190
    m_packetTagList (),
194
    m_packetTagList (),
191
    m_metadata (0,0),
195
    m_metadata (0,0),
196
    m_dirtyMetadata (false),
192
    m_nixVector (0)
197
    m_nixVector (0)
193
{
198
{
194
  NS_ASSERT (magic);
199
  NS_ASSERT (magic);
 Lines 206-211    Link Here 
206
     * global UID
211
     * global UID
207
     */
212
     */
208
    m_metadata (static_cast<uint64_t> (Simulator::GetSystemId ()) << 32 | m_globalUid, size),
213
    m_metadata (static_cast<uint64_t> (Simulator::GetSystemId ()) << 32 | m_globalUid, size),
214
    m_dirtyMetadata (true),
209
    m_nixVector (0)
215
    m_nixVector (0)
210
{
216
{
211
  m_globalUid++;
217
  m_globalUid++;
 Lines 220-225    Link Here 
220
    m_byteTagList (byteTagList),
226
    m_byteTagList (byteTagList),
221
    m_packetTagList (packetTagList),
227
    m_packetTagList (packetTagList),
222
    m_metadata (metadata),
228
    m_metadata (metadata),
229
    m_dirtyMetadata (false),
223
    m_nixVector (0)
230
    m_nixVector (0)
224
{
231
{
225
}
232
}
 Lines 270-276    Link Here 
270
  uint32_t deserialized = header.Deserialize (m_buffer.Begin ());
277
  uint32_t deserialized = header.Deserialize (m_buffer.Begin ());
271
  NS_LOG_FUNCTION (this << header.GetInstanceTypeId ().GetName () << deserialized);
278
  NS_LOG_FUNCTION (this << header.GetInstanceTypeId ().GetName () << deserialized);
272
  m_buffer.RemoveAtStart (deserialized);
279
  m_buffer.RemoveAtStart (deserialized);
273
  m_metadata.RemoveHeader (header, deserialized);
280
  if (!m_dirtyMetadata)
281
    {
282
      m_metadata.RemoveHeader (header, deserialized);
283
    }
274
  return deserialized;
284
  return deserialized;
275
}
285
}
276
uint32_t
286
uint32_t
 Lines 302-308    Link Here 
302
  uint32_t deserialized = trailer.Deserialize (m_buffer.End ());
312
  uint32_t deserialized = trailer.Deserialize (m_buffer.End ());
303
  NS_LOG_FUNCTION (this << trailer.GetInstanceTypeId ().GetName () << deserialized);
313
  NS_LOG_FUNCTION (this << trailer.GetInstanceTypeId ().GetName () << deserialized);
304
  m_buffer.RemoveAtEnd (deserialized);
314
  m_buffer.RemoveAtEnd (deserialized);
305
  m_metadata.RemoveTrailer (trailer, deserialized);
315
  if (!m_dirtyMetadata)
316
    {
317
      m_metadata.RemoveTrailer (trailer, deserialized);
318
    }
306
  return deserialized;
319
  return deserialized;
307
}
320
}
308
uint32_t
321
uint32_t
 Lines 764-774    Link Here 
764
777
765
  size -= metaSize;
778
  size -= metaSize;
766
779
767
  uint32_t metadataDeserialized = 
780
  uint32_t metadataDeserialized =
768
    m_metadata.Deserialize (reinterpret_cast<const uint8_t *> (p), metaSize);
781
    m_metadata.Deserialize (reinterpret_cast<const uint8_t *> (p), metaSize);
769
  if (!metadataDeserialized)
782
  if (!metadataDeserialized)
770
    {
783
    {
771
      // meta-data not deserialized 
784
      // meta-data not deserialized
772
      // completely
785
      // completely
773
      return 0;
786
      return 0;
774
    }
787
    }
(-)a/src/network/model/packet.h (+1 lines)
 Lines 697-702    Link Here 
697
  ByteTagList m_byteTagList;      //!< the ByteTag list
697
  ByteTagList m_byteTagList;      //!< the ByteTag list
698
  PacketTagList m_packetTagList;  //!< the packet's Tag list
698
  PacketTagList m_packetTagList;  //!< the packet's Tag list
699
  PacketMetadata m_metadata;      //!< the packet's metadata
699
  PacketMetadata m_metadata;      //!< the packet's metadata
700
  bool m_dirtyMetadata;           //!< the packet's metadata are not check-safe
700
701
701
  /* Please see comments above about nix-vector */
702
  /* Please see comments above about nix-vector */
702
  Ptr<NixVector> m_nixVector; //!< the packet's Nix vector
703
  Ptr<NixVector> m_nixVector; //!< the packet's Nix vector

Return to bug 2078