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 271-277    Link Here 
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_byteTagList.Adjust (-deserialized);
280
  m_byteTagList.Adjust (-deserialized);
274
  m_metadata.RemoveHeader (header, deserialized);
281
  if (!m_dirtyMetadata)
282
    {
283
      m_metadata.RemoveHeader (header, deserialized);
284
    }
275
  return deserialized;
285
  return deserialized;
276
}
286
}
277
uint32_t
287
uint32_t
 Lines 298-304    Link Here 
298
  uint32_t deserialized = trailer.Deserialize (m_buffer.End ());
308
  uint32_t deserialized = trailer.Deserialize (m_buffer.End ());
299
  NS_LOG_FUNCTION (this << trailer.GetInstanceTypeId ().GetName () << deserialized);
309
  NS_LOG_FUNCTION (this << trailer.GetInstanceTypeId ().GetName () << deserialized);
300
  m_buffer.RemoveAtEnd (deserialized);
310
  m_buffer.RemoveAtEnd (deserialized);
301
  m_metadata.RemoveTrailer (trailer, deserialized);
311
  if (!m_dirtyMetadata)
312
    {
313
      m_metadata.RemoveTrailer (trailer, deserialized);
314
    }
302
  return deserialized;
315
  return deserialized;
303
}
316
}
304
uint32_t
317
uint32_t
 Lines 752-762    Link Here 
752
765
753
  size -= metaSize;
766
  size -= metaSize;
754
767
755
  uint32_t metadataDeserialized = 
768
  uint32_t metadataDeserialized =
756
    m_metadata.Deserialize (reinterpret_cast<const uint8_t *> (p), metaSize);
769
    m_metadata.Deserialize (reinterpret_cast<const uint8_t *> (p), metaSize);
757
  if (!metadataDeserialized)
770
  if (!metadataDeserialized)
758
    {
771
    {
759
      // meta-data not deserialized 
772
      // meta-data not deserialized
760
      // completely
773
      // completely
761
      return 0;
774
      return 0;
762
    }
775
    }
(-)a/src/network/model/packet.h (+1 lines)
 Lines 717-722    Link Here 
717
  ByteTagList m_byteTagList;      //!< the ByteTag list
717
  ByteTagList m_byteTagList;      //!< the ByteTag list
718
  PacketTagList m_packetTagList;  //!< the packet's Tag list
718
  PacketTagList m_packetTagList;  //!< the packet's Tag list
719
  PacketMetadata m_metadata;      //!< the packet's metadata
719
  PacketMetadata m_metadata;      //!< the packet's metadata
720
  bool m_dirtyMetadata;           //!< the packet's metadata are not check-safe
720
721
721
  /* Please see comments above about nix-vector */
722
  /* Please see comments above about nix-vector */
722
  Ptr<NixVector> m_nixVector; //!< the packet's Nix vector
723
  Ptr<NixVector> m_nixVector; //!< the packet's Nix vector

Return to bug 2078