PacketBB:: Removed pbb namespace, instead prefix class names with Pbb.
authorTom Wambold <tom5760@gmail.com>
Thu Sep 10 15:33:23 2009 -0400 (5 months ago)
changeset 4782285222a4daa7
parent 4781 8d1b043d2e6c
child 4783 6648a2c450e5
PacketBB:: Removed pbb namespace, instead prefix class names with Pbb.
src/contrib/packetbb.cc
src/contrib/packetbb.h
src/contrib/test-packetbb.cc
     1.1 --- a/src/contrib/packetbb.cc	Thu Sep 10 15:32:38 2009 -0400
     1.2 +++ b/src/contrib/packetbb.cc	Thu Sep 10 15:33:23 2009 -0400
     1.3 @@ -34,7 +34,7 @@
     1.4  static const uint8_t PHAS_SEQ_NUM = 0x8;
     1.5  static const uint8_t PHAS_TLV = 0x4;
     1.6  
     1.7 -/* Message flags */
     1.8 +/* PbbMessage flags */
     1.9  static const uint8_t MHAS_ORIG = 0x80;
    1.10  static const uint8_t MHAS_HOP_LIMIT = 0x40;
    1.11  static const uint8_t MHAS_HOP_COUNT = 0x20;
    1.12 @@ -57,108 +57,106 @@
    1.13  
    1.14  namespace ns3 {
    1.15  
    1.16 -namespace pbb {
    1.17 -
    1.18 -NS_OBJECT_ENSURE_REGISTERED (PacketBB);
    1.19 -
    1.20 -TlvBlock::Iterator
    1.21 -TlvBlock::Begin (void)
    1.22 +NS_OBJECT_ENSURE_REGISTERED (PbbPacket);
    1.23 +
    1.24 +PbbTlvBlock::Iterator
    1.25 +PbbTlvBlock::Begin (void)
    1.26  {
    1.27    return m_tlvList.begin ();
    1.28  }
    1.29  
    1.30 -TlvBlock::ConstIterator
    1.31 -TlvBlock::Begin (void) const
    1.32 +PbbTlvBlock::ConstIterator
    1.33 +PbbTlvBlock::Begin (void) const
    1.34  {
    1.35    return m_tlvList.begin ();
    1.36  }
    1.37  
    1.38 -TlvBlock::Iterator
    1.39 -TlvBlock::End (void)
    1.40 +PbbTlvBlock::Iterator
    1.41 +PbbTlvBlock::End (void)
    1.42  {
    1.43    return m_tlvList.end ();
    1.44  }
    1.45  
    1.46 -TlvBlock::ConstIterator
    1.47 -TlvBlock::End (void) const
    1.48 +PbbTlvBlock::ConstIterator
    1.49 +PbbTlvBlock::End (void) const
    1.50  {
    1.51    return m_tlvList.end ();
    1.52  }
    1.53  
    1.54  int
    1.55 -TlvBlock::Size (void) const
    1.56 +PbbTlvBlock::Size (void) const
    1.57  {
    1.58    return m_tlvList.size ();
    1.59  }
    1.60  
    1.61  bool
    1.62 -TlvBlock::Empty (void) const
    1.63 +PbbTlvBlock::Empty (void) const
    1.64  {
    1.65    return m_tlvList.empty ();
    1.66  }
    1.67  
    1.68 -Ptr<Tlv>
    1.69 -TlvBlock::Front (void) const
    1.70 +Ptr<PbbTlv>
    1.71 +PbbTlvBlock::Front (void) const
    1.72  {
    1.73    return m_tlvList.front ();
    1.74  }
    1.75  
    1.76 -Ptr<Tlv>
    1.77 -TlvBlock::Back (void) const
    1.78 +Ptr<PbbTlv>
    1.79 +PbbTlvBlock::Back (void) const
    1.80  {
    1.81    return m_tlvList.back ();
    1.82  }
    1.83  
    1.84  void
    1.85 -TlvBlock::PushFront (Ptr<Tlv> tlv)
    1.86 +PbbTlvBlock::PushFront (Ptr<PbbTlv> tlv)
    1.87  {
    1.88    m_tlvList.push_front (tlv);
    1.89  }
    1.90  
    1.91  void
    1.92 -TlvBlock::PopFront (void)
    1.93 +PbbTlvBlock::PopFront (void)
    1.94  {
    1.95    m_tlvList.pop_front ();
    1.96  }
    1.97  
    1.98  void
    1.99 -TlvBlock::PushBack (Ptr<Tlv> tlv)
   1.100 +PbbTlvBlock::PushBack (Ptr<PbbTlv> tlv)
   1.101  {
   1.102    m_tlvList.push_back (tlv);
   1.103  }
   1.104  
   1.105  void
   1.106 -TlvBlock::PopBack (void)
   1.107 +PbbTlvBlock::PopBack (void)
   1.108  {
   1.109    m_tlvList.pop_back ();
   1.110  }
   1.111  
   1.112 -TlvBlock::Iterator
   1.113 -TlvBlock::Insert (TlvBlock::Iterator position, const Ptr<Tlv> tlv)
   1.114 +PbbTlvBlock::Iterator
   1.115 +PbbTlvBlock::Insert (PbbTlvBlock::Iterator position, const Ptr<PbbTlv> tlv)
   1.116  {
   1.117    return m_tlvList.insert (position, tlv);
   1.118  }
   1.119  
   1.120 -TlvBlock::Iterator
   1.121 -TlvBlock::Erase (TlvBlock::Iterator position)
   1.122 +PbbTlvBlock::Iterator
   1.123 +PbbTlvBlock::Erase (PbbTlvBlock::Iterator position)
   1.124  {
   1.125    return m_tlvList.erase (position);
   1.126  }
   1.127  
   1.128 -TlvBlock::Iterator
   1.129 -TlvBlock::Erase (TlvBlock::Iterator first, TlvBlock::Iterator last)
   1.130 +PbbTlvBlock::Iterator
   1.131 +PbbTlvBlock::Erase (PbbTlvBlock::Iterator first, PbbTlvBlock::Iterator last)
   1.132  {
   1.133    return m_tlvList.erase (first, last);
   1.134  }
   1.135  
   1.136  void
   1.137 -TlvBlock::Clear (void)
   1.138 +PbbTlvBlock::Clear (void)
   1.139  {
   1.140    m_tlvList.clear ();
   1.141  }
   1.142  
   1.143  uint32_t
   1.144 -TlvBlock::GetSerializedSize (void) const
   1.145 +PbbTlvBlock::GetSerializedSize (void) const
   1.146  {
   1.147    /* tlv size */
   1.148    uint32_t size = 2;
   1.149 @@ -170,7 +168,7 @@
   1.150  }
   1.151  
   1.152  void
   1.153 -TlvBlock::Serialize (Buffer::Iterator &start) const
   1.154 +PbbTlvBlock::Serialize (Buffer::Iterator &start) const
   1.155  {
   1.156    if (Empty ())
   1.157      {
   1.158 @@ -192,7 +190,7 @@
   1.159  }
   1.160  
   1.161  void
   1.162 -TlvBlock::Deserialize (Buffer::Iterator &start)
   1.163 +PbbTlvBlock::Deserialize (Buffer::Iterator &start)
   1.164  {
   1.165    uint16_t size = start.ReadNtohU16 ();
   1.166  
   1.167 @@ -201,7 +199,7 @@
   1.168      {
   1.169        while (start.GetDistanceFrom (tlvstart) < size)
   1.170          {
   1.171 -          Ptr<Tlv> newtlv = Create<Tlv> ();
   1.172 +          Ptr<PbbTlv> newtlv = Create<PbbTlv> ();
   1.173            newtlv->Deserialize (start);
   1.174            PushBack (newtlv);
   1.175          }
   1.176 @@ -209,13 +207,13 @@
   1.177  }
   1.178  
   1.179  void
   1.180 -TlvBlock::Print (std::ostream &os) const
   1.181 +PbbTlvBlock::Print (std::ostream &os) const
   1.182  {
   1.183    Print (os, 0);
   1.184  }
   1.185  
   1.186  void
   1.187 -TlvBlock::Print (std::ostream &os, int level) const
   1.188 +PbbTlvBlock::Print (std::ostream &os, int level) const
   1.189  {
   1.190    std::string prefix = "";
   1.191    for (int i = 0; i < level; i++)
   1.192 @@ -237,7 +235,7 @@
   1.193  }
   1.194  
   1.195  bool
   1.196 -TlvBlock::operator== (const TlvBlock &other) const
   1.197 +PbbTlvBlock::operator== (const PbbTlvBlock &other) const
   1.198  {
   1.199    if (Size () != other.Size ())
   1.200      {
   1.201 @@ -258,111 +256,111 @@
   1.202  }
   1.203  
   1.204  bool
   1.205 -TlvBlock::operator!= (const TlvBlock &other) const
   1.206 +PbbTlvBlock::operator!= (const PbbTlvBlock &other) const
   1.207  {
   1.208    return !(*this == other);
   1.209  }
   1.210  
   1.211 -/* End TlvBlock class */
   1.212 -
   1.213 -AddressTlvBlock::Iterator
   1.214 -AddressTlvBlock::Begin (void)
   1.215 +/* End PbbTlvBlock class */
   1.216 +
   1.217 +PbbAddressTlvBlock::Iterator
   1.218 +PbbAddressTlvBlock::Begin (void)
   1.219  {
   1.220    return m_tlvList.begin ();
   1.221  }
   1.222  
   1.223 -AddressTlvBlock::ConstIterator
   1.224 -AddressTlvBlock::Begin (void) const
   1.225 +PbbAddressTlvBlock::ConstIterator
   1.226 +PbbAddressTlvBlock::Begin (void) const
   1.227  {
   1.228    return m_tlvList.begin ();
   1.229  }
   1.230  
   1.231 -AddressTlvBlock::Iterator
   1.232 -AddressTlvBlock::End (void)
   1.233 +PbbAddressTlvBlock::Iterator
   1.234 +PbbAddressTlvBlock::End (void)
   1.235  {
   1.236    return m_tlvList.end ();
   1.237  }
   1.238  
   1.239 -AddressTlvBlock::ConstIterator
   1.240 -AddressTlvBlock::End (void) const
   1.241 +PbbAddressTlvBlock::ConstIterator
   1.242 +PbbAddressTlvBlock::End (void) const
   1.243  {
   1.244    return m_tlvList.end ();
   1.245  }
   1.246  
   1.247  int
   1.248 -AddressTlvBlock::Size (void) const
   1.249 +PbbAddressTlvBlock::Size (void) const
   1.250  {
   1.251    return m_tlvList.size ();
   1.252  }
   1.253  
   1.254  bool
   1.255 -AddressTlvBlock::Empty (void) const
   1.256 +PbbAddressTlvBlock::Empty (void) const
   1.257  {
   1.258    return m_tlvList.empty ();
   1.259  }
   1.260  
   1.261 -Ptr<AddressTlv>
   1.262 -AddressTlvBlock::Front (void) const
   1.263 +Ptr<PbbAddressTlv>
   1.264 +PbbAddressTlvBlock::Front (void) const
   1.265  {
   1.266    return m_tlvList.front ();
   1.267  }
   1.268  
   1.269 -Ptr<AddressTlv>
   1.270 -AddressTlvBlock::Back (void) const
   1.271 +Ptr<PbbAddressTlv>
   1.272 +PbbAddressTlvBlock::Back (void) const
   1.273  {
   1.274    return m_tlvList.back ();
   1.275  }
   1.276  
   1.277  void
   1.278 -AddressTlvBlock::PushFront (Ptr<AddressTlv> tlv)
   1.279 +PbbAddressTlvBlock::PushFront (Ptr<PbbAddressTlv> tlv)
   1.280  {
   1.281    m_tlvList.push_front (tlv);
   1.282  }
   1.283  
   1.284  void
   1.285 -AddressTlvBlock::PopFront (void)
   1.286 +PbbAddressTlvBlock::PopFront (void)
   1.287  {
   1.288    m_tlvList.pop_front ();
   1.289  }
   1.290  
   1.291  void
   1.292 -AddressTlvBlock::PushBack (Ptr<AddressTlv> tlv)
   1.293 +PbbAddressTlvBlock::PushBack (Ptr<PbbAddressTlv> tlv)
   1.294  {
   1.295    m_tlvList.push_back (tlv);
   1.296  }
   1.297  
   1.298  void
   1.299 -AddressTlvBlock::PopBack (void)
   1.300 +PbbAddressTlvBlock::PopBack (void)
   1.301  {
   1.302    m_tlvList.pop_back ();
   1.303  }
   1.304  
   1.305 -AddressTlvBlock::Iterator
   1.306 -AddressTlvBlock::Insert (AddressTlvBlock::Iterator position, const Ptr<AddressTlv> tlv)
   1.307 +PbbAddressTlvBlock::Iterator
   1.308 +PbbAddressTlvBlock::Insert (PbbAddressTlvBlock::Iterator position, const Ptr<PbbAddressTlv> tlv)
   1.309  {
   1.310    return m_tlvList.insert (position, tlv);
   1.311  }
   1.312  
   1.313 -AddressTlvBlock::Iterator
   1.314 -AddressTlvBlock::Erase (AddressTlvBlock::Iterator position)
   1.315 +PbbAddressTlvBlock::Iterator
   1.316 +PbbAddressTlvBlock::Erase (PbbAddressTlvBlock::Iterator position)
   1.317  {
   1.318    return m_tlvList.erase (position);
   1.319  }
   1.320  
   1.321 -AddressTlvBlock::Iterator
   1.322 -AddressTlvBlock::Erase (AddressTlvBlock::Iterator first, AddressTlvBlock::Iterator last)
   1.323 +PbbAddressTlvBlock::Iterator
   1.324 +PbbAddressTlvBlock::Erase (PbbAddressTlvBlock::Iterator first, PbbAddressTlvBlock::Iterator last)
   1.325  {
   1.326    return m_tlvList.erase (first, last);
   1.327  }
   1.328  
   1.329  void
   1.330 -AddressTlvBlock::Clear (void)
   1.331 +PbbAddressTlvBlock::Clear (void)
   1.332  {
   1.333    m_tlvList.clear ();
   1.334  }
   1.335  
   1.336  uint32_t
   1.337 -AddressTlvBlock::GetSerializedSize (void) const
   1.338 +PbbAddressTlvBlock::GetSerializedSize (void) const
   1.339  {
   1.340    /* tlv size */
   1.341    uint32_t size = 2;
   1.342 @@ -374,7 +372,7 @@
   1.343  }
   1.344  
   1.345  void
   1.346 -AddressTlvBlock::Serialize (Buffer::Iterator &start) const
   1.347 +PbbAddressTlvBlock::Serialize (Buffer::Iterator &start) const
   1.348  {
   1.349    if (Empty ())
   1.350      {
   1.351 @@ -396,7 +394,7 @@
   1.352  }
   1.353  
   1.354  void
   1.355 -AddressTlvBlock::Deserialize (Buffer::Iterator &start)
   1.356 +PbbAddressTlvBlock::Deserialize (Buffer::Iterator &start)
   1.357  {
   1.358    uint16_t size = start.ReadNtohU16 ();
   1.359  
   1.360 @@ -405,7 +403,7 @@
   1.361      {
   1.362        while (start.GetDistanceFrom (tlvstart) < size)
   1.363        {
   1.364 -        Ptr<AddressTlv> newtlv = Create<AddressTlv> ();
   1.365 +        Ptr<PbbAddressTlv> newtlv = Create<PbbAddressTlv> ();
   1.366          newtlv->Deserialize (start);
   1.367          PushBack (newtlv);
   1.368        }
   1.369 @@ -413,13 +411,13 @@
   1.370  }
   1.371  
   1.372  void
   1.373 -AddressTlvBlock::Print (std::ostream &os) const
   1.374 +PbbAddressTlvBlock::Print (std::ostream &os) const
   1.375  {
   1.376    Print (os, 0);
   1.377  }
   1.378  
   1.379  void
   1.380 -AddressTlvBlock::Print (std::ostream &os, int level) const
   1.381 +PbbAddressTlvBlock::Print (std::ostream &os, int level) const
   1.382  {
   1.383    std::string prefix = "";
   1.384    for (int i = 0; i < level; i++)
   1.385 @@ -441,7 +439,7 @@
   1.386  }
   1.387  
   1.388  bool
   1.389 -AddressTlvBlock::operator== (const AddressTlvBlock &other) const
   1.390 +PbbAddressTlvBlock::operator== (const PbbAddressTlvBlock &other) const
   1.391  {
   1.392    if (Size () != other.Size ())
   1.393      {
   1.394 @@ -462,15 +460,15 @@
   1.395  }
   1.396  
   1.397  bool
   1.398 -AddressTlvBlock::operator!= (const AddressTlvBlock &other) const
   1.399 +PbbAddressTlvBlock::operator!= (const PbbAddressTlvBlock &other) const
   1.400  {
   1.401    return !(*this == other);
   1.402  }
   1.403  
   1.404  
   1.405 -/* End AddressTlvBlock Class */
   1.406 -
   1.407 -PacketBB::PacketBB (void)
   1.408 +/* End PbbAddressTlvBlock Class */
   1.409 +
   1.410 +PbbPacket::PbbPacket (void)
   1.411  {
   1.412    m_refCount = 1;
   1.413    m_version = VERSION;
   1.414 @@ -478,248 +476,248 @@
   1.415  }
   1.416  
   1.417  uint8_t
   1.418 -PacketBB::GetVersion (void) const
   1.419 +PbbPacket::GetVersion (void) const
   1.420  {
   1.421    return m_version;
   1.422  }
   1.423  
   1.424  void
   1.425 -PacketBB::SetSequenceNumber (uint16_t number)
   1.426 +PbbPacket::SetSequenceNumber (uint16_t number)
   1.427  {
   1.428    m_seqnum = number;
   1.429    m_hasseqnum = true;
   1.430  }
   1.431  
   1.432  uint16_t
   1.433 -PacketBB::GetSequenceNumber (void) const
   1.434 +PbbPacket::GetSequenceNumber (void) const
   1.435  {
   1.436    NS_ASSERT (HasSequenceNumber ());
   1.437    return m_seqnum;
   1.438  }
   1.439  
   1.440  bool
   1.441 -PacketBB::HasSequenceNumber (void) const
   1.442 +PbbPacket::HasSequenceNumber (void) const
   1.443  {
   1.444    return m_hasseqnum;
   1.445  }
   1.446  
   1.447  /* Manipulating Packet TLVs */
   1.448  
   1.449 -PacketBB::TlvIterator
   1.450 -PacketBB::TlvBegin (void)
   1.451 +PbbPacket::TlvIterator
   1.452 +PbbPacket::TlvBegin (void)
   1.453  {
   1.454    return m_tlvList.Begin ();
   1.455  }
   1.456  
   1.457 -PacketBB::ConstTlvIterator
   1.458 -PacketBB::TlvBegin (void) const
   1.459 +PbbPacket::ConstTlvIterator
   1.460 +PbbPacket::TlvBegin (void) const
   1.461  {
   1.462    return m_tlvList.Begin ();
   1.463  }
   1.464  
   1.465 -PacketBB::TlvIterator
   1.466 -PacketBB::TlvEnd (void)
   1.467 +PbbPacket::TlvIterator
   1.468 +PbbPacket::TlvEnd (void)
   1.469  {
   1.470    return m_tlvList.End ();
   1.471  }
   1.472  
   1.473 -PacketBB::ConstTlvIterator
   1.474 -PacketBB::TlvEnd (void) const
   1.475 +PbbPacket::ConstTlvIterator
   1.476 +PbbPacket::TlvEnd (void) const
   1.477  {
   1.478    return m_tlvList.End ();
   1.479  }
   1.480  
   1.481  int
   1.482 -PacketBB::TlvSize (void) const
   1.483 +PbbPacket::TlvSize (void) const
   1.484  {
   1.485    return m_tlvList.Size ();
   1.486  }
   1.487  
   1.488  bool
   1.489 -PacketBB::TlvEmpty (void) const
   1.490 +PbbPacket::TlvEmpty (void) const
   1.491  {
   1.492    return m_tlvList.Empty ();
   1.493  }
   1.494  
   1.495 -Ptr<Tlv>
   1.496 -PacketBB::TlvFront (void)
   1.497 +Ptr<PbbTlv>
   1.498 +PbbPacket::TlvFront (void)
   1.499  {
   1.500    return m_tlvList.Front ();
   1.501  }
   1.502  
   1.503 -const Ptr<Tlv>
   1.504 -PacketBB::TlvFront (void) const
   1.505 +const Ptr<PbbTlv>
   1.506 +PbbPacket::TlvFront (void) const
   1.507  {
   1.508    return m_tlvList.Front ();
   1.509  }
   1.510  
   1.511 -Ptr<Tlv>
   1.512 -PacketBB::TlvBack (void)
   1.513 +Ptr<PbbTlv>
   1.514 +PbbPacket::TlvBack (void)
   1.515  {
   1.516    return m_tlvList.Back ();
   1.517  }
   1.518  
   1.519 -const Ptr<Tlv>
   1.520 -PacketBB::TlvBack (void) const
   1.521 +const Ptr<PbbTlv>
   1.522 +PbbPacket::TlvBack (void) const
   1.523  {
   1.524    return m_tlvList.Back ();
   1.525  }
   1.526  
   1.527  void
   1.528 -PacketBB::TlvPushFront (Ptr<Tlv> tlv)
   1.529 +PbbPacket::TlvPushFront (Ptr<PbbTlv> tlv)
   1.530  {
   1.531    m_tlvList.PushFront (tlv);
   1.532  }
   1.533  
   1.534  void
   1.535 -PacketBB::TlvPopFront (void)
   1.536 +PbbPacket::TlvPopFront (void)
   1.537  {
   1.538    m_tlvList.PopFront ();
   1.539  }
   1.540  
   1.541  void
   1.542 -PacketBB::TlvPushBack (Ptr<Tlv> tlv)
   1.543 +PbbPacket::TlvPushBack (Ptr<PbbTlv> tlv)
   1.544  {
   1.545    m_tlvList.PushBack (tlv);
   1.546  }
   1.547  
   1.548  void
   1.549 -PacketBB::TlvPopBack (void)
   1.550 +PbbPacket::TlvPopBack (void)
   1.551  {
   1.552    m_tlvList.PopBack ();
   1.553  }
   1.554  
   1.555 -PacketBB::TlvIterator
   1.556 -PacketBB::Erase (PacketBB::TlvIterator position)
   1.557 +PbbPacket::TlvIterator
   1.558 +PbbPacket::Erase (PbbPacket::TlvIterator position)
   1.559  {
   1.560    return m_tlvList.Erase (position);
   1.561  }
   1.562  
   1.563 -PacketBB::TlvIterator
   1.564 -PacketBB::Erase (PacketBB::TlvIterator first, PacketBB::TlvIterator last)
   1.565 +PbbPacket::TlvIterator
   1.566 +PbbPacket::Erase (PbbPacket::TlvIterator first, PbbPacket::TlvIterator last)
   1.567  {
   1.568    return m_tlvList.Erase (first, last);
   1.569  }
   1.570  
   1.571  void
   1.572 -PacketBB::TlvClear (void)
   1.573 +PbbPacket::TlvClear (void)
   1.574  {
   1.575    m_tlvList.Clear ();
   1.576  }
   1.577  
   1.578  /* Manipulating Packet Messages */
   1.579  
   1.580 -PacketBB::MessageIterator
   1.581 -PacketBB::MessageBegin (void)
   1.582 +PbbPacket::MessageIterator
   1.583 +PbbPacket::MessageBegin (void)
   1.584  {
   1.585    return m_messageList.begin ();
   1.586  }
   1.587  
   1.588 -PacketBB::ConstMessageIterator
   1.589 -PacketBB::MessageBegin (void) const
   1.590 +PbbPacket::ConstMessageIterator
   1.591 +PbbPacket::MessageBegin (void) const
   1.592  {
   1.593    return m_messageList.begin ();
   1.594  }
   1.595  
   1.596 -PacketBB::MessageIterator
   1.597 -PacketBB::MessageEnd (void)
   1.598 +PbbPacket::MessageIterator
   1.599 +PbbPacket::MessageEnd (void)
   1.600  {
   1.601    return m_messageList.end ();
   1.602  }
   1.603  
   1.604 -PacketBB::ConstMessageIterator
   1.605 -PacketBB::MessageEnd (void) const
   1.606 +PbbPacket::ConstMessageIterator
   1.607 +PbbPacket::MessageEnd (void) const
   1.608  {
   1.609    return m_messageList.end ();
   1.610  }
   1.611  
   1.612  int
   1.613 -PacketBB::MessageSize (void) const
   1.614 +PbbPacket::MessageSize (void) const
   1.615  {
   1.616    return m_messageList.size ();
   1.617  }
   1.618  
   1.619  bool
   1.620 -PacketBB::MessageEmpty (void) const
   1.621 +PbbPacket::MessageEmpty (void) const
   1.622  {
   1.623    return m_messageList.empty ();
   1.624  }
   1.625  
   1.626 -Ptr<Message>
   1.627 -PacketBB::MessageFront (void)
   1.628 +Ptr<PbbMessage>
   1.629 +PbbPacket::MessageFront (void)
   1.630  {
   1.631    return m_messageList.front ();
   1.632  }
   1.633  
   1.634 -const Ptr<Message>
   1.635 -PacketBB::MessageFront (void) const
   1.636 +const Ptr<PbbMessage>
   1.637 +PbbPacket::MessageFront (void) const
   1.638  {
   1.639    return m_messageList.front ();
   1.640  }
   1.641  
   1.642 -Ptr<Message>
   1.643 -PacketBB::MessageBack (void)
   1.644 +Ptr<PbbMessage>
   1.645 +PbbPacket::MessageBack (void)
   1.646  {
   1.647    return m_messageList.back ();
   1.648  }
   1.649  
   1.650 -const Ptr<Message>
   1.651 -PacketBB::MessageBack (void) const
   1.652 +const Ptr<PbbMessage>
   1.653 +PbbPacket::MessageBack (void) const
   1.654  {
   1.655    return m_messageList.back ();
   1.656  }
   1.657  
   1.658  void
   1.659 -PacketBB::MessagePushFront (Ptr<Message> tlv)
   1.660 +PbbPacket::MessagePushFront (Ptr<PbbMessage> tlv)
   1.661  {
   1.662    m_messageList.push_front (tlv);
   1.663  }
   1.664  
   1.665  void
   1.666 -PacketBB::MessagePopFront (void)
   1.667 +PbbPacket::MessagePopFront (void)
   1.668  {
   1.669    m_messageList.pop_front ();
   1.670  }
   1.671  
   1.672  void
   1.673 -PacketBB::MessagePushBack (Ptr<Message> tlv)
   1.674 +PbbPacket::MessagePushBack (Ptr<PbbMessage> tlv)
   1.675  {
   1.676    m_messageList.push_back (tlv);
   1.677  }
   1.678  
   1.679  void
   1.680 -PacketBB::MessagePopBack (void)
   1.681 +PbbPacket::MessagePopBack (void)
   1.682  {
   1.683    m_messageList.pop_back ();
   1.684  }
   1.685  
   1.686 -PacketBB::MessageIterator
   1.687 -PacketBB::Erase (PacketBB::MessageIterator position)
   1.688 +PbbPacket::MessageIterator
   1.689 +PbbPacket::Erase (PbbPacket::MessageIterator position)
   1.690  {
   1.691    return m_messageList.erase (position);
   1.692  }
   1.693  
   1.694 -PacketBB::MessageIterator
   1.695 -PacketBB::Erase (PacketBB::MessageIterator first,
   1.696 -    PacketBB::MessageIterator last)
   1.697 +PbbPacket::MessageIterator
   1.698 +PbbPacket::Erase (PbbPacket::MessageIterator first,
   1.699 +    PbbPacket::MessageIterator last)
   1.700  {
   1.701    return m_messageList.erase (first, last);
   1.702  }
   1.703  
   1.704  void
   1.705 -PacketBB::MessageClear (void)
   1.706 +PbbPacket::MessageClear (void)
   1.707  {
   1.708    m_messageList.clear ();
   1.709  }
   1.710  
   1.711  void
   1.712 -PacketBB::Ref (void) const
   1.713 +PbbPacket::Ref (void) const
   1.714  {
   1.715    m_refCount++;
   1.716  }
   1.717  
   1.718  void
   1.719 -PacketBB::Unref (void) const
   1.720 +PbbPacket::Unref (void) const
   1.721  {
   1.722    m_refCount--;
   1.723    if (m_refCount == 0)
   1.724 @@ -729,23 +727,23 @@
   1.725  }
   1.726  
   1.727  TypeId
   1.728 -PacketBB::GetTypeId (void)
   1.729 +PbbPacket::GetTypeId (void)
   1.730  {
   1.731 -  static TypeId tid = TypeId ("PacketBB")
   1.732 +  static TypeId tid = TypeId ("PbbPacket")
   1.733      .SetParent<Header> ()
   1.734 -    .AddConstructor<PacketBB> ()
   1.735 +    .AddConstructor<PbbPacket> ()
   1.736    ;
   1.737    return tid;
   1.738  }
   1.739  
   1.740  TypeId
   1.741 -PacketBB::GetInstanceTypeId (void) const
   1.742 +PbbPacket::GetInstanceTypeId (void) const
   1.743  {
   1.744    return GetTypeId ();
   1.745  }
   1.746  
   1.747  uint32_t
   1.748 -PacketBB::GetSerializedSize (void) const
   1.749 +PbbPacket::GetSerializedSize (void) const
   1.750  {
   1.751    /* Version number + flags */
   1.752    uint32_t size = 1;
   1.753 @@ -771,7 +769,7 @@
   1.754  }
   1.755  
   1.756  void
   1.757 -PacketBB::Serialize (Buffer::Iterator start) const
   1.758 +PbbPacket::Serialize (Buffer::Iterator start) const
   1.759  {
   1.760    /* We remember the start, so we can write the flags after we check for a
   1.761     * sequence number and TLV. */
   1.762 @@ -805,7 +803,7 @@
   1.763  }
   1.764  
   1.765  uint32_t
   1.766 -PacketBB::Deserialize (Buffer::Iterator start)
   1.767 +PbbPacket::Deserialize (Buffer::Iterator start)
   1.768  {
   1.769    Buffer::Iterator begin = start;
   1.770  
   1.771 @@ -823,7 +821,7 @@
   1.772  
   1.773    while (!start.IsEnd())
   1.774      {
   1.775 -      Ptr<Message> newmsg = Message::DeserializeMessage (start);
   1.776 +      Ptr<PbbMessage> newmsg = PbbMessage::DeserializeMessage (start);
   1.777        if (newmsg == 0)
   1.778          {
   1.779            return start.GetDistanceFrom (begin);
   1.780 @@ -838,9 +836,9 @@
   1.781  }
   1.782  
   1.783  void
   1.784 -PacketBB::Print (std::ostream &os) const
   1.785 +PbbPacket::Print (std::ostream &os) const
   1.786  {
   1.787 -  os << "PacketBB {" << std::endl;
   1.788 +  os << "PbbPacket {" << std::endl;
   1.789  
   1.790    if (HasSequenceNumber ())
   1.791      {
   1.792 @@ -862,7 +860,7 @@
   1.793  }
   1.794  
   1.795  bool
   1.796 -PacketBB::operator== (const PacketBB &other) const
   1.797 +PbbPacket::operator== (const PbbPacket &other) const
   1.798  {
   1.799    if (GetVersion () != other.GetVersion ())
   1.800      {
   1.801 @@ -904,14 +902,14 @@
   1.802  }
   1.803  
   1.804  bool
   1.805 -PacketBB::operator!= (const PacketBB &other) const
   1.806 +PbbPacket::operator!= (const PbbPacket &other) const
   1.807  {
   1.808    return !(*this == other);
   1.809  }
   1.810  
   1.811 -/* End PacketBB class */
   1.812 -
   1.813 -Message::Message (void)
   1.814 +/* End PbbPacket class */
   1.815 +
   1.816 +PbbMessage::PbbMessage (void)
   1.817  {
   1.818    m_refCount = 1;
   1.819    /* Default to IPv4 */
   1.820 @@ -923,320 +921,320 @@
   1.821  }
   1.822  
   1.823  void
   1.824 -Message::SetType (uint8_t type)
   1.825 +PbbMessage::SetType (uint8_t type)
   1.826  {
   1.827    m_type = type;
   1.828  }
   1.829  
   1.830  uint8_t
   1.831 -Message::GetType (void) const
   1.832 +PbbMessage::GetType (void) const
   1.833  {
   1.834    return m_type;
   1.835  }
   1.836  
   1.837  AddressLength
   1.838 -Message::GetAddressLength (void) const
   1.839 +PbbMessage::GetAddressLength (void) const
   1.840  {
   1.841    return m_addrSize;
   1.842  }
   1.843  
   1.844  void
   1.845 -Message::SetOriginatorAddress (Address address)
   1.846 +PbbMessage::SetOriginatorAddress (Address address)
   1.847  {
   1.848    m_originatorAddress = address;
   1.849    m_hasOriginatorAddress = true;
   1.850  }
   1.851  
   1.852  Address
   1.853 -Message::GetOriginatorAddress (void) const
   1.854 +PbbMessage::GetOriginatorAddress (void) const
   1.855  {
   1.856    NS_ASSERT (HasOriginatorAddress ());
   1.857    return m_originatorAddress;
   1.858  }
   1.859  
   1.860  bool
   1.861 -Message::HasOriginatorAddress (void) const
   1.862 +PbbMessage::HasOriginatorAddress (void) const
   1.863  {
   1.864    return m_hasOriginatorAddress;
   1.865  }
   1.866  
   1.867  void
   1.868 -Message::SetHopLimit (uint8_t hopLimit)
   1.869 +PbbMessage::SetHopLimit (uint8_t hopLimit)
   1.870  {
   1.871    m_hopLimit = hopLimit;
   1.872    m_hasHopLimit = true;
   1.873  }
   1.874  
   1.875  uint8_t
   1.876 -Message::GetHopLimit (void) const
   1.877 +PbbMessage::GetHopLimit (void) const
   1.878  {
   1.879    NS_ASSERT (HasHopLimit ());
   1.880    return m_hopLimit;
   1.881  }
   1.882  
   1.883  bool
   1.884 -Message::HasHopLimit (void) const
   1.885 +PbbMessage::HasHopLimit (void) const
   1.886  {
   1.887    return m_hasHopLimit;
   1.888  }
   1.889  
   1.890  void
   1.891 -Message::SetHopCount (uint8_t hopCount)
   1.892 +PbbMessage::SetHopCount (uint8_t hopCount)
   1.893  {
   1.894    m_hopCount = hopCount;
   1.895    m_hasHopCount = true;
   1.896  }
   1.897  
   1.898  uint8_t
   1.899 -Message::GetHopCount (void) const
   1.900 +PbbMessage::GetHopCount (void) const
   1.901  {
   1.902    NS_ASSERT (HasHopCount ());
   1.903    return m_hopCount;
   1.904  }
   1.905  
   1.906  bool
   1.907 -Message::HasHopCount (void) const
   1.908 +PbbMessage::HasHopCount (void) const
   1.909  {
   1.910    return m_hasHopCount;
   1.911  }
   1.912  
   1.913  void
   1.914 -Message::SetSequenceNumber (uint16_t sequenceNumber)
   1.915 +PbbMessage::SetSequenceNumber (uint16_t sequenceNumber)
   1.916  {
   1.917    m_sequenceNumber = sequenceNumber;
   1.918    m_hasSequenceNumber = true;
   1.919  }
   1.920  
   1.921  uint16_t
   1.922 -Message::GetSequenceNumber (void) const
   1.923 +PbbMessage::GetSequenceNumber (void) const
   1.924  {
   1.925    NS_ASSERT (HasSequenceNumber ());
   1.926    return m_sequenceNumber;
   1.927  }
   1.928  
   1.929  bool
   1.930 -Message::HasSequenceNumber (void) const
   1.931 +PbbMessage::HasSequenceNumber (void) const
   1.932  {
   1.933    return m_hasSequenceNumber;
   1.934  }
   1.935  
   1.936 -/* Manipulating Message TLVs */
   1.937 -
   1.938 -Message::TlvIterator
   1.939 -Message::TlvBegin (void)
   1.940 +/* Manipulating PbbMessage TLVs */
   1.941 +
   1.942 +PbbMessage::TlvIterator
   1.943 +PbbMessage::TlvBegin (void)
   1.944  {
   1.945    return m_tlvList.Begin();
   1.946  }
   1.947  
   1.948 -Message::ConstTlvIterator
   1.949 -Message::TlvBegin (void) const
   1.950 +PbbMessage::ConstTlvIterator
   1.951 +PbbMessage::TlvBegin (void) const
   1.952  {
   1.953    return m_tlvList.Begin();
   1.954  }
   1.955  
   1.956 -Message::TlvIterator
   1.957 -Message::TlvEnd (void)
   1.958 +PbbMessage::TlvIterator
   1.959 +PbbMessage::TlvEnd (void)
   1.960  {
   1.961    return m_tlvList.End();
   1.962  }
   1.963  
   1.964 -Message::ConstTlvIterator
   1.965 -Message::TlvEnd (void) const
   1.966 +PbbMessage::ConstTlvIterator
   1.967 +PbbMessage::TlvEnd (void) const
   1.968  {
   1.969    return m_tlvList.End();
   1.970  }
   1.971  
   1.972  int
   1.973 -Message::TlvSize (void) const
   1.974 +PbbMessage::TlvSize (void) const
   1.975  {
   1.976    return m_tlvList.Size();
   1.977  }
   1.978  
   1.979  bool
   1.980 -Message::TlvEmpty (void) const
   1.981 +PbbMessage::TlvEmpty (void) const
   1.982  {
   1.983    return m_tlvList.Empty();
   1.984  }
   1.985  
   1.986 -Ptr<Tlv>
   1.987 -Message::TlvFront (void)
   1.988 +Ptr<PbbTlv>
   1.989 +PbbMessage::TlvFront (void)
   1.990  {
   1.991    return m_tlvList.Front();
   1.992  }
   1.993  
   1.994 -const Ptr<Tlv>
   1.995 -Message::TlvFront (void) const
   1.996 +const Ptr<PbbTlv>
   1.997 +PbbMessage::TlvFront (void) const
   1.998  {
   1.999    return m_tlvList.Front();
  1.1000  }
  1.1001  
  1.1002 -Ptr<Tlv>
  1.1003 -Message::TlvBack (void)
  1.1004 +Ptr<PbbTlv>
  1.1005 +PbbMessage::TlvBack (void)
  1.1006  {
  1.1007    return m_tlvList.Back();
  1.1008  }
  1.1009  
  1.1010 -const Ptr<Tlv>
  1.1011 -Message::TlvBack (void) const
  1.1012 +const Ptr<PbbTlv>
  1.1013 +PbbMessage::TlvBack (void) const
  1.1014  {
  1.1015    return m_tlvList.Back();
  1.1016  }
  1.1017  
  1.1018  void
  1.1019 -Message::TlvPushFront (Ptr<Tlv> tlv)
  1.1020 +PbbMessage::TlvPushFront (Ptr<PbbTlv> tlv)
  1.1021  {
  1.1022    m_tlvList.PushFront(tlv);
  1.1023  }
  1.1024  
  1.1025  void
  1.1026 -Message::TlvPopFront (void)
  1.1027 +PbbMessage::TlvPopFront (void)
  1.1028  {
  1.1029    m_tlvList.PopFront();
  1.1030  }
  1.1031  
  1.1032  void
  1.1033 -Message::TlvPushBack (Ptr<Tlv> tlv)
  1.1034 +PbbMessage::TlvPushBack (Ptr<PbbTlv> tlv)
  1.1035  {
  1.1036    m_tlvList.PushBack(tlv);
  1.1037  }
  1.1038  
  1.1039  void
  1.1040 -Message::TlvPopBack (void)
  1.1041 +PbbMessage::TlvPopBack (void)
  1.1042  {
  1.1043    m_tlvList.PopBack();
  1.1044  }
  1.1045  
  1.1046 -Message::TlvIterator
  1.1047 -Message::TlvErase (Message::TlvIterator position)
  1.1048 +PbbMessage::TlvIterator
  1.1049 +PbbMessage::TlvErase (PbbMessage::TlvIterator position)
  1.1050  {
  1.1051    return m_tlvList.Erase(position);
  1.1052  }
  1.1053  
  1.1054 -Message::TlvIterator
  1.1055 -Message::TlvErase (Message::TlvIterator first, Message::TlvIterator last)
  1.1056 +PbbMessage::TlvIterator
  1.1057 +PbbMessage::TlvErase (PbbMessage::TlvIterator first, PbbMessage::TlvIterator last)
  1.1058  {
  1.1059    return m_tlvList.Erase(first, last);
  1.1060  }
  1.1061  
  1.1062  void
  1.1063 -Message::TlvClear (void)
  1.1064 +PbbMessage::TlvClear (void)
  1.1065  {
  1.1066    return m_tlvList.Clear();
  1.1067  }
  1.1068  
  1.1069  /* Manipulating Address Block and Address TLV pairs */
  1.1070  
  1.1071 -Message::AddressBlockIterator
  1.1072 -Message::AddressBlockBegin (void)
  1.1073 +PbbMessage::AddressBlockIterator
  1.1074 +PbbMessage::AddressBlockBegin (void)
  1.1075  {
  1.1076    return m_addressBlockList.begin();
  1.1077  }
  1.1078  
  1.1079 -Message::ConstAddressBlockIterator
  1.1080 -Message::AddressBlockBegin (void) const
  1.1081 +PbbMessage::ConstAddressBlockIterator
  1.1082 +PbbMessage::AddressBlockBegin (void) const
  1.1083  {
  1.1084    return m_addressBlockList.begin();
  1.1085  }
  1.1086  
  1.1087 -Message::AddressBlockIterator
  1.1088 -Message::AddressBlockEnd (void)
  1.1089 +PbbMessage::AddressBlockIterator
  1.1090 +PbbMessage::AddressBlockEnd (void)
  1.1091  {
  1.1092    return m_addressBlockList.end();
  1.1093  }
  1.1094  
  1.1095 -Message::ConstAddressBlockIterator
  1.1096 -Message::AddressBlockEnd (void) const
  1.1097 +PbbMessage::ConstAddressBlockIterator
  1.1098 +PbbMessage::AddressBlockEnd (void) const
  1.1099  {
  1.1100    return m_addressBlockList.end();
  1.1101  }
  1.1102  
  1.1103  int
  1.1104 -Message::AddressBlockSize (void) const
  1.1105 +PbbMessage::AddressBlockSize (void) const
  1.1106  {
  1.1107    return m_addressBlockList.size();
  1.1108  }
  1.1109  
  1.1110  bool
  1.1111 -Message::AddressBlockEmpty (void) const
  1.1112 +PbbMessage::AddressBlockEmpty (void) const
  1.1113  {
  1.1114    return m_addressBlockList.empty();
  1.1115  }
  1.1116  
  1.1117 -Ptr<AddressBlock>
  1.1118 -Message::AddressBlockFront (void)
  1.1119 +Ptr<PbbAddressBlock>
  1.1120 +PbbMessage::AddressBlockFront (void)
  1.1121  {
  1.1122    return m_addressBlockList.front();
  1.1123  }
  1.1124  
  1.1125 -const Ptr<AddressBlock>
  1.1126 -Message::AddressBlockFront (void) const
  1.1127 +const Ptr<PbbAddressBlock>
  1.1128 +PbbMessage::AddressBlockFront (void) const
  1.1129  {
  1.1130    return m_addressBlockList.front();
  1.1131  }
  1.1132  
  1.1133 -Ptr<AddressBlock>
  1.1134 -Message::AddressBlockBack (void)
  1.1135 +Ptr<PbbAddressBlock>
  1.1136 +PbbMessage::AddressBlockBack (void)
  1.1137  {
  1.1138    return m_addressBlockList.back();
  1.1139  }
  1.1140  
  1.1141 -const Ptr<AddressBlock>
  1.1142 -Message::AddressBlockBack (void) const
  1.1143 +const Ptr<PbbAddressBlock>
  1.1144 +PbbMessage::AddressBlockBack (void) const
  1.1145  {
  1.1146    return m_addressBlockList.back();
  1.1147  }
  1.1148  
  1.1149  void
  1.1150 -Message::AddressBlockPushFront (Ptr<AddressBlock> tlv)
  1.1151 +PbbMessage::AddressBlockPushFront (Ptr<PbbAddressBlock> tlv)
  1.1152  {
  1.1153    m_addressBlockList.push_front(tlv);
  1.1154  }
  1.1155  
  1.1156  void
  1.1157 -Message::AddressBlockPopFront (void)
  1.1158 +PbbMessage::AddressBlockPopFront (void)
  1.1159  {
  1.1160    m_addressBlockList.pop_front();
  1.1161  }
  1.1162  
  1.1163  void
  1.1164 -Message::AddressBlockPushBack (Ptr<AddressBlock> tlv)
  1.1165 +PbbMessage::AddressBlockPushBack (Ptr<PbbAddressBlock> tlv)
  1.1166  {
  1.1167    m_addressBlockList.push_back(tlv);
  1.1168  }
  1.1169  
  1.1170  void
  1.1171 -Message::AddressBlockPopBack (void)
  1.1172 +PbbMessage::AddressBlockPopBack (void)
  1.1173  {
  1.1174    m_addressBlockList.pop_back();
  1.1175  }
  1.1176  
  1.1177 -Message::AddressBlockIterator
  1.1178 -Message::AddressBlockErase (Message::AddressBlockIterator position)
  1.1179 +PbbMessage::AddressBlockIterator
  1.1180 +PbbMessage::AddressBlockErase (PbbMessage::AddressBlockIterator position)
  1.1181  {
  1.1182    return m_addressBlockList.erase(position);
  1.1183  }
  1.1184  
  1.1185 -Message::AddressBlockIterator
  1.1186 -Message::AddressBlockErase (Message::AddressBlockIterator first,
  1.1187 -    Message::AddressBlockIterator last)
  1.1188 +PbbMessage::AddressBlockIterator
  1.1189 +PbbMessage::AddressBlockErase (PbbMessage::AddressBlockIterator first,
  1.1190 +    PbbMessage::AddressBlockIterator last)
  1.1191  {
  1.1192    return m_addressBlockList.erase(first, last);
  1.1193  }
  1.1194  
  1.1195  void
  1.1196 -Message::AddressBlockClear (void)
  1.1197 +PbbMessage::AddressBlockClear (void)
  1.1198  {
  1.1199    return m_addressBlockList.clear();
  1.1200  }
  1.1201  
  1.1202  void
  1.1203 -Message::Ref (void) const
  1.1204 +PbbMessage::Ref (void) const
  1.1205  {
  1.1206    m_refCount++;
  1.1207  }
  1.1208  
  1.1209  void
  1.1210 -Message::Unref (void) const
  1.1211 +PbbMessage::Unref (void) const
  1.1212  {
  1.1213    m_refCount--;
  1.1214    if (m_refCount == 0)
  1.1215 @@ -1246,7 +1244,7 @@
  1.1216  }
  1.1217  
  1.1218  uint32_t
  1.1219 -Message::GetSerializedSize (void) const
  1.1220 +PbbMessage::GetSerializedSize (void) const
  1.1221  {
  1.1222    /* msg-type + (msg-flags + msg-addr-length) + 2msg-size */
  1.1223    uint32_t size = 4;
  1.1224 @@ -1284,7 +1282,7 @@
  1.1225  }
  1.1226  
  1.1227  void
  1.1228 -Message::Serialize (Buffer::Iterator &start) const
  1.1229 +PbbMessage::Serialize (Buffer::Iterator &start) const
  1.1230  {
  1.1231    Buffer::Iterator front = start;
  1.1232  
  1.1233 @@ -1339,8 +1337,8 @@
  1.1234    sizeref.WriteHtonU16 (front.GetDistanceFrom (start));
  1.1235  }
  1.1236  
  1.1237 -Ptr<Message>
  1.1238 -Message::DeserializeMessage (Buffer::Iterator &start)
  1.1239 +Ptr<PbbMessage>
  1.1240 +PbbMessage::DeserializeMessage (Buffer::Iterator &start)
  1.1241  {
  1.1242    /* We need to read the msg-addr-len field to determine what kind of object to
  1.1243     * construct. */
  1.1244 @@ -1352,16 +1350,16 @@
  1.1245     * bytes to 0 to read it. */
  1.1246    addrlen = (addrlen & 0xf);
  1.1247  
  1.1248 -  Ptr<Message> newmsg;
  1.1249 +  Ptr<PbbMessage> newmsg;
  1.1250  
  1.1251    switch (addrlen)
  1.1252      {
  1.1253        case 0:
  1.1254        case IPV4:
  1.1255 -        newmsg = Create<MessageIpv4> ();
  1.1256 +        newmsg = Create<PbbMessageIpv4> ();
  1.1257          break;
  1.1258        case IPV6:
  1.1259 -        newmsg = Create<MessageIpv6> ();
  1.1260 +        newmsg = Create<PbbMessageIpv6> ();
  1.1261          break;
  1.1262        default:
  1.1263          return 0;
  1.1264 @@ -1372,7 +1370,7 @@
  1.1265  }
  1.1266  
  1.1267  void
  1.1268 -Message::Deserialize (Buffer::Iterator &start)
  1.1269 +PbbMessage::Deserialize (Buffer::Iterator &start)
  1.1270  {
  1.1271    Buffer::Iterator front = start;
  1.1272    SetType (start.ReadU8 ());
  1.1273 @@ -1406,20 +1404,20 @@
  1.1274      {
  1.1275        while (start.GetDistanceFrom(front) < size)
  1.1276          {
  1.1277 -          Ptr<AddressBlock> newab = AddressBlockDeserialize (start);
  1.1278 +          Ptr<PbbAddressBlock> newab = AddressBlockDeserialize (start);
  1.1279            AddressBlockPushBack (newab);
  1.1280          }
  1.1281      }
  1.1282  }
  1.1283  
  1.1284  void
  1.1285 -Message::Print (std::ostream &os) const
  1.1286 +PbbMessage::Print (std::ostream &os) const
  1.1287  {
  1.1288    Print (os, 0);
  1.1289  }
  1.1290  
  1.1291  void
  1.1292 -Message::Print (std::ostream &os, int level) const
  1.1293 +PbbMessage::Print (std::ostream &os, int level) const
  1.1294  {
  1.1295    std::string prefix = "";
  1.1296    for (int i = 0; i < level; i++)
  1.1297 @@ -1427,7 +1425,7 @@
  1.1298        prefix.append ("\t");
  1.1299      }
  1.1300  
  1.1301 -  os << prefix << "Message {" << std::endl;
  1.1302 +  os << prefix << "PbbMessage {" << std::endl;
  1.1303  
  1.1304    os << prefix << "\tmessage type = " << (int)GetType () << std::endl;
  1.1305    os << prefix << "\taddress size = " << GetAddressLength () << std::endl;
  1.1306 @@ -1466,7 +1464,7 @@
  1.1307  }
  1.1308  
  1.1309  bool
  1.1310 -Message::operator== (const Message &other) const
  1.1311 +PbbMessage::operator== (const PbbMessage &other) const
  1.1312  {
  1.1313    if (GetAddressLength () != other.GetAddressLength ())
  1.1314      {
  1.1315 @@ -1554,21 +1552,21 @@
  1.1316  }
  1.1317  
  1.1318  bool
  1.1319 -Message::operator!= (const Message &other) const
  1.1320 +PbbMessage::operator!= (const PbbMessage &other) const
  1.1321  {
  1.1322    return !(*this == other);
  1.1323  }
  1.1324  
  1.1325 -/* End Message Class */
  1.1326 +/* End PbbMessage Class */
  1.1327  
  1.1328  AddressLength
  1.1329 -MessageIpv4::GetAddressLength (void) const
  1.1330 +PbbMessageIpv4::GetAddressLength (void) const
  1.1331  {
  1.1332    return IPV4;
  1.1333  }
  1.1334  
  1.1335  void
  1.1336 -MessageIpv4::SerializeOriginatorAddress (Buffer::Iterator &start) const
  1.1337 +PbbMessageIpv4::SerializeOriginatorAddress (Buffer::Iterator &start) const
  1.1338  {
  1.1339    uint8_t buffer[GetAddressLength () + 1];
  1.1340    Ipv4Address::ConvertFrom (GetOriginatorAddress ()).Serialize(buffer);
  1.1341 @@ -1576,7 +1574,7 @@
  1.1342  }
  1.1343  
  1.1344  Address
  1.1345 -MessageIpv4::DeserializeOriginatorAddress (Buffer::Iterator &start) const
  1.1346 +PbbMessageIpv4::DeserializeOriginatorAddress (Buffer::Iterator &start) const
  1.1347  {
  1.1348    uint8_t buffer[GetAddressLength () + 1];
  1.1349    start.Read(buffer, GetAddressLength () + 1);
  1.1350 @@ -1584,29 +1582,29 @@
  1.1351  }
  1.1352  
  1.1353  void
  1.1354 -MessageIpv4::PrintOriginatorAddress (std::ostream &os) const
  1.1355 +PbbMessageIpv4::PrintOriginatorAddress (std::ostream &os) const
  1.1356  {
  1.1357    Ipv4Address::ConvertFrom (GetOriginatorAddress ()).Print (os);
  1.1358  }
  1.1359  
  1.1360 -Ptr<AddressBlock>
  1.1361 -MessageIpv4::AddressBlockDeserialize (Buffer::Iterator &start) const
  1.1362 +Ptr<PbbAddressBlock>
  1.1363 +PbbMessageIpv4::AddressBlockDeserialize (Buffer::Iterator &start) const
  1.1364  {
  1.1365 -  Ptr<AddressBlock> newab = Create<AddressBlockIpv4> ();
  1.1366 +  Ptr<PbbAddressBlock> newab = Create<PbbAddressBlockIpv4> ();
  1.1367    newab->Deserialize (start);
  1.1368    return newab;
  1.1369  }
  1.1370  
  1.1371 -/* End MessageIpv4 Class */
  1.1372 +/* End PbbMessageIpv4 Class */
  1.1373  
  1.1374  AddressLength
  1.1375 -MessageIpv6::GetAddressLength (void) const
  1.1376 +PbbMessageIpv6::GetAddressLength (void) const
  1.1377  {
  1.1378    return IPV6;
  1.1379  }
  1.1380  
  1.1381  void
  1.1382 -MessageIpv6::SerializeOriginatorAddress (Buffer::Iterator &start) const
  1.1383 +PbbMessageIpv6::SerializeOriginatorAddress (Buffer::Iterator &start) const
  1.1384  {
  1.1385    uint8_t buffer[GetAddressLength () + 1];
  1.1386    Ipv6Address::ConvertFrom (GetOriginatorAddress ()).Serialize(buffer);
  1.1387 @@ -1614,7 +1612,7 @@
  1.1388  }
  1.1389  
  1.1390  Address
  1.1391 -MessageIpv6::DeserializeOriginatorAddress (Buffer::Iterator &start) const
  1.1392 +PbbMessageIpv6::DeserializeOriginatorAddress (Buffer::Iterator &start) const
  1.1393  {
  1.1394    uint8_t buffer[GetAddressLength () + 1];
  1.1395    start.Read(buffer, GetAddressLength () + 1);
  1.1396 @@ -1622,330 +1620,330 @@
  1.1397  }
  1.1398  
  1.1399  void
  1.1400 -MessageIpv6::PrintOriginatorAddress (std::ostream &os) const
  1.1401 +PbbMessageIpv6::PrintOriginatorAddress (std::ostream &os) const
  1.1402  {
  1.1403    Ipv6Address::ConvertFrom (GetOriginatorAddress ()).Print (os);
  1.1404  }
  1.1405  
  1.1406 -Ptr<AddressBlock>
  1.1407 -MessageIpv6::AddressBlockDeserialize (Buffer::Iterator &start) const
  1.1408 +Ptr<PbbAddressBlock>
  1.1409 +PbbMessageIpv6::AddressBlockDeserialize (Buffer::Iterator &start) const
  1.1410  {
  1.1411 -  Ptr<AddressBlock> newab = Create<AddressBlockIpv6> ();
  1.1412 +  Ptr<PbbAddressBlock> newab = Create<PbbAddressBlockIpv6> ();
  1.1413    newab->Deserialize (start);
  1.1414    return newab;
  1.1415  }
  1.1416  
  1.1417 -/* End MessageIpv6 Class */
  1.1418 -
  1.1419 -AddressBlock::AddressBlock ()
  1.1420 +/* End PbbMessageIpv6 Class */
  1.1421 +
  1.1422 +PbbAddressBlock::PbbAddressBlock ()
  1.1423  {
  1.1424    m_refCount = 1;
  1.1425  }
  1.1426  
  1.1427  /* Manipulating the address block */
  1.1428  
  1.1429 -AddressBlock::AddressIterator
  1.1430 -AddressBlock::AddressBegin (void)
  1.1431 +PbbAddressBlock::AddressIterator
  1.1432 +PbbAddressBlock::AddressBegin (void)
  1.1433  {
  1.1434    return m_addressList.begin();
  1.1435  }
  1.1436  
  1.1437 -AddressBlock::ConstAddressIterator
  1.1438 -AddressBlock::AddressBegin (void) const
  1.1439 +PbbAddressBlock::ConstAddressIterator
  1.1440 +PbbAddressBlock::AddressBegin (void) const
  1.1441  {
  1.1442    return m_addressList.begin();
  1.1443  }
  1.1444  
  1.1445 -AddressBlock::AddressIterator
  1.1446 -AddressBlock::AddressEnd (void)
  1.1447 +PbbAddressBlock::AddressIterator
  1.1448 +PbbAddressBlock::AddressEnd (void)
  1.1449  {
  1.1450    return m_addressList.end();
  1.1451  }
  1.1452  
  1.1453 -AddressBlock::ConstAddressIterator
  1.1454 -AddressBlock::AddressEnd (void) const
  1.1455 +PbbAddressBlock::ConstAddressIterator
  1.1456 +PbbAddressBlock::AddressEnd (void) const
  1.1457  {
  1.1458    return m_addressList.end();
  1.1459  }
  1.1460  
  1.1461  int
  1.1462 -AddressBlock::AddressSize (void) const
  1.1463 +PbbAddressBlock::AddressSize (void) const
  1.1464  {
  1.1465    return m_addressList.size();
  1.1466  }
  1.1467  
  1.1468  bool
  1.1469 -AddressBlock::AddressEmpty (void) const
  1.1470 +PbbAddressBlock::AddressEmpty (void) const
  1.1471  {
  1.1472    return m_addressList.empty();
  1.1473  }
  1.1474  
  1.1475  Address
  1.1476 -AddressBlock::AddressFront (void) const
  1.1477 +PbbAddressBlock::AddressFront (void) const
  1.1478  {
  1.1479    return m_addressList.front();
  1.1480  }
  1.1481  
  1.1482  Address
  1.1483 -AddressBlock::AddressBack (void) const
  1.1484 +PbbAddressBlock::AddressBack (void) const
  1.1485  {
  1.1486    return m_addressList.back();
  1.1487  }
  1.1488  
  1.1489  void
  1.1490 -AddressBlock::AddressPushFront (Address tlv)
  1.1491 +PbbAddressBlock::AddressPushFront (Address tlv)
  1.1492  {
  1.1493    m_addressList.push_front(tlv);
  1.1494  }
  1.1495  
  1.1496  void
  1.1497 -AddressBlock::AddressPopFront (void)
  1.1498 +PbbAddressBlock::AddressPopFront (void)
  1.1499  {
  1.1500    m_addressList.pop_front();
  1.1501  }
  1.1502  
  1.1503  void
  1.1504 -AddressBlock::AddressPushBack (Address tlv)
  1.1505 +PbbAddressBlock::AddressPushBack (Address tlv)
  1.1506  {
  1.1507    m_addressList.push_back(tlv);
  1.1508  }
  1.1509  
  1.1510  void
  1.1511 -AddressBlock::AddressPopBack (void)
  1.1512 +PbbAddressBlock::AddressPopBack (void)
  1.1513  {
  1.1514    m_addressList.pop_back();
  1.1515  }
  1.1516  
  1.1517 -AddressBlock::AddressIterator
  1.1518 -AddressBlock::AddressErase (AddressBlock::AddressIterator position)
  1.1519 +PbbAddressBlock::AddressIterator
  1.1520 +PbbAddressBlock::AddressErase (PbbAddressBlock::AddressIterator position)
  1.1521  {
  1.1522    return m_addressList.erase(position);
  1.1523  }
  1.1524  
  1.1525 -AddressBlock::AddressIterator
  1.1526 -AddressBlock::AddressErase (AddressBlock::AddressIterator first,
  1.1527 -    AddressBlock::AddressIterator last)
  1.1528 +PbbAddressBlock::AddressIterator
  1.1529 +PbbAddressBlock::AddressErase (PbbAddressBlock::AddressIterator first,
  1.1530 +    PbbAddressBlock::AddressIterator last)
  1.1531  {
  1.1532    return m_addressList.erase(first, last);
  1.1533  }
  1.1534  
  1.1535    void
  1.1536 -AddressBlock::AddressClear (void)
  1.1537 +PbbAddressBlock::AddressClear (void)
  1.1538  {
  1.1539    return m_addressList.clear();
  1.1540  }
  1.1541  
  1.1542  /* Manipulating the prefix list */
  1.1543  
  1.1544 -AddressBlock::PrefixIterator
  1.1545 -AddressBlock::PrefixBegin (void)
  1.1546 +PbbAddressBlock::PrefixIterator
  1.1547 +PbbAddressBlock::PrefixBegin (void)
  1.1548  {
  1.1549    return m_prefixList.begin ();
  1.1550  }
  1.1551  
  1.1552 -AddressBlock::ConstPrefixIterator
  1.1553 -AddressBlock::PrefixBegin (void) const
  1.1554 +PbbAddressBlock::ConstPrefixIterator
  1.1555 +PbbAddressBlock::PrefixBegin (void) const
  1.1556  {
  1.1557    return m_prefixList.begin ();
  1.1558  }
  1.1559  
  1.1560 -AddressBlock::PrefixIterator
  1.1561 -AddressBlock::PrefixEnd (void)
  1.1562 +PbbAddressBlock::PrefixIterator
  1.1563 +PbbAddressBlock::PrefixEnd (void)
  1.1564  {
  1.1565    return m_prefixList.end ();
  1.1566  }
  1.1567  
  1.1568 -AddressBlock::ConstPrefixIterator
  1.1569 -AddressBlock::PrefixEnd (void) const
  1.1570 +PbbAddressBlock::ConstPrefixIterator
  1.1571 +PbbAddressBlock::PrefixEnd (void) const
  1.1572  {
  1.1573    return m_prefixList.end ();
  1.1574  }
  1.1575  
  1.1576  int
  1.1577 -AddressBlock::PrefixSize (void) const
  1.1578 +PbbAddressBlock::PrefixSize (void) const
  1.1579  {
  1.1580    return m_prefixList.size ();
  1.1581  }
  1.1582  
  1.1583  bool
  1.1584 -AddressBlock::PrefixEmpty (void) const
  1.1585 +PbbAddressBlock::PrefixEmpty (void) const
  1.1586  {
  1.1587    return m_prefixList.empty ();
  1.1588  }
  1.1589  
  1.1590  uint8_t
  1.1591 -AddressBlock::PrefixFront (void) const
  1.1592 +PbbAddressBlock::PrefixFront (void) const
  1.1593  {
  1.1594    return m_prefixList.front ();
  1.1595  }
  1.1596  
  1.1597  uint8_t
  1.1598 -AddressBlock::PrefixBack (void) const
  1.1599 +PbbAddressBlock::PrefixBack (void) const
  1.1600  {
  1.1601    return m_prefixList.back ();
  1.1602  }
  1.1603  
  1.1604  void
  1.1605 -AddressBlock::PrefixPushFront (uint8_t prefix)
  1.1606 +PbbAddressBlock::PrefixPushFront (uint8_t prefix)
  1.1607  {
  1.1608    m_prefixList.push_front (prefix);
  1.1609  }
  1.1610  
  1.1611  void
  1.1612 -AddressBlock::PrefixPopFront (void)
  1.1613 +PbbAddressBlock::PrefixPopFront (void)
  1.1614  {
  1.1615    m_prefixList.pop_front ();
  1.1616  }
  1.1617  
  1.1618  void
  1.1619 -AddressBlock::PrefixPushBack (uint8_t prefix)
  1.1620 +PbbAddressBlock::PrefixPushBack (uint8_t prefix)
  1.1621  {
  1.1622    m_prefixList.push_back (prefix);
  1.1623  }
  1.1624  
  1.1625  void
  1.1626 -AddressBlock::PrefixPopBack (void)
  1.1627 +PbbAddressBlock::PrefixPopBack (void)
  1.1628  {
  1.1629    m_prefixList.pop_back ();
  1.1630  }
  1.1631  
  1.1632 -AddressBlock::PrefixIterator
  1.1633 -AddressBlock::PrefixInsert (AddressBlock::PrefixIterator position, const uint8_t value)
  1.1634 +PbbAddressBlock::PrefixIterator
  1.1635 +PbbAddressBlock::PrefixInsert (PbbAddressBlock::PrefixIterator position, const uint8_t value)
  1.1636  {
  1.1637    return m_prefixList.insert (position, value);
  1.1638  }
  1.1639  
  1.1640 -AddressBlock::PrefixIterator
  1.1641 -AddressBlock::PrefixErase (AddressBlock::PrefixIterator position)
  1.1642 +PbbAddressBlock::PrefixIterator
  1.1643 +PbbAddressBlock::PrefixErase (PbbAddressBlock::PrefixIterator position)
  1.1644  {
  1.1645    return m_prefixList.erase (position);
  1.1646  }
  1.1647  
  1.1648 -AddressBlock::PrefixIterator
  1.1649 -AddressBlock::PrefixErase (AddressBlock::PrefixIterator first, AddressBlock::PrefixIterator last)
  1.1650 +PbbAddressBlock::PrefixIterator
  1.1651 +PbbAddressBlock::PrefixErase (PbbAddressBlock::PrefixIterator first, PbbAddressBlock::PrefixIterator last)
  1.1652  {
  1.1653    return m_prefixList.erase (first, last);
  1.1654  }
  1.1655  
  1.1656  void
  1.1657 -AddressBlock::PrefixClear (void)
  1.1658 +PbbAddressBlock::PrefixClear (void)
  1.1659  {
  1.1660    m_prefixList.clear ();
  1.1661  }
  1.1662  
  1.1663  /* Manipulating the TLV block */
  1.1664  
  1.1665 -AddressBlock::TlvIterator
  1.1666 -AddressBlock::TlvBegin (void)
  1.1667 +PbbAddressBlock::TlvIterator
  1.1668 +PbbAddressBlock::TlvBegin (void)
  1.1669  {
  1.1670    return m_addressTlvList.Begin();
  1.1671  }
  1.1672  
  1.1673 -AddressBlock::ConstTlvIterator
  1.1674 -AddressBlock::TlvBegin (void) const
  1.1675 +PbbAddressBlock::ConstTlvIterator
  1.1676 +PbbAddressBlock::TlvBegin (void) const
  1.1677  {
  1.1678    return m_addressTlvList.Begin();
  1.1679  }
  1.1680  
  1.1681 -AddressBlock::TlvIterator
  1.1682 -AddressBlock::TlvEnd (void)
  1.1683 +PbbAddressBlock::TlvIterator
  1.1684 +PbbAddressBlock::TlvEnd (void)
  1.1685  {
  1.1686    return m_addressTlvList.End();
  1.1687  }
  1.1688  
  1.1689 -AddressBlock::ConstTlvIterator
  1.1690 -AddressBlock::TlvEnd (void) const
  1.1691 +PbbAddressBlock::ConstTlvIterator
  1.1692 +PbbAddressBlock::TlvEnd (void) const
  1.1693  {
  1.1694    return m_addressTlvList.End();
  1.1695  }
  1.1696  
  1.1697  int
  1.1698 -AddressBlock::TlvSize (void) const
  1.1699 +PbbAddressBlock::TlvSize (void) const
  1.1700  {
  1.1701    return m_addressTlvList.Size();
  1.1702  }
  1.1703  
  1.1704  bool
  1.1705 -AddressBlock::TlvEmpty (void) const
  1.1706 +PbbAddressBlock::TlvEmpty (void) const
  1.1707  {
  1.1708    return m_addressTlvList.Empty();
  1.1709  }
  1.1710  
  1.1711 -Ptr<AddressTlv>
  1.1712 -AddressBlock::TlvFront (void)
  1.1713 +Ptr<PbbAddressTlv>
  1.1714 +PbbAddressBlock::TlvFront (void)
  1.1715  {
  1.1716    return m_addressTlvList.Front();
  1.1717  }
  1.1718  
  1.1719 -const Ptr<AddressTlv>
  1.1720 -AddressBlock::TlvFront (void) const
  1.1721 +const Ptr<PbbAddressTlv>
  1.1722 +PbbAddressBlock::TlvFront (void) const
  1.1723  {
  1.1724    return m_addressTlvList.Front();
  1.1725  }
  1.1726  
  1.1727 -Ptr<AddressTlv>
  1.1728 -AddressBlock::TlvBack (void)
  1.1729 +Ptr<PbbAddressTlv>
  1.1730 +PbbAddressBlock::TlvBack (void)
  1.1731  {
  1.1732    return m_addressTlvList.Back();
  1.1733  }
  1.1734  
  1.1735 -const Ptr<AddressTlv>
  1.1736 -AddressBlock::TlvBack (void) const
  1.1737 +const Ptr<PbbAddressTlv>
  1.1738 +PbbAddressBlock::TlvBack (void) const
  1.1739  {
  1.1740    return m_addressTlvList.Back();
  1.1741  }
  1.1742  
  1.1743  void
  1.1744 -AddressBlock::TlvPushFront (Ptr<AddressTlv> tlv)
  1.1745 +PbbAddressBlock::TlvPushFront (Ptr<PbbAddressTlv> tlv)
  1.1746  {
  1.1747    m_addressTlvList.PushFront(tlv);
  1.1748  }
  1.1749  
  1.1750  void
  1.1751 -AddressBlock::TlvPopFront (void)
  1.1752 +PbbAddressBlock::TlvPopFront (void)
  1.1753  {
  1.1754    m_addressTlvList.PopFront();
  1.1755  }
  1.1756  
  1.1757  void
  1.1758 -AddressBlock::TlvPushBack (Ptr<AddressTlv> tlv)
  1.1759 +PbbAddressBlock::TlvPushBack (Ptr<PbbAddressTlv> tlv)
  1.1760  {
  1.1761    m_addressTlvList.PushBack(tlv);
  1.1762  }
  1.1763  
  1.1764  void
  1.1765 -AddressBlock::TlvPopBack (void)
  1.1766 +PbbAddressBlock::TlvPopBack (void)
  1.1767  {
  1.1768    m_addressTlvList.PopBack();
  1.1769  }
  1.1770  
  1.1771 -AddressBlock::TlvIterator
  1.1772 -AddressBlock::TlvErase (AddressBlock::TlvIterator position)
  1.1773 +PbbAddressBlock::TlvIterator
  1.1774 +PbbAddressBlock::TlvErase (PbbAddressBlock::TlvIterator position)
  1.1775  {
  1.1776    return m_addressTlvList.Erase(position);
  1.1777  }
  1.1778  
  1.1779 -AddressBlock::TlvIterator
  1.1780 -AddressBlock::TlvErase (AddressBlock::TlvIterator first,
  1.1781 -    AddressBlock::TlvIterator last)
  1.1782 +PbbAddressBlock::TlvIterator
  1.1783 +PbbAddressBlock::TlvErase (PbbAddressBlock::TlvIterator first,
  1.1784 +    PbbAddressBlock::TlvIterator last)
  1.1785  {
  1.1786    return m_addressTlvList.Erase(first, last);
  1.1787  }
  1.1788  
  1.1789  void
  1.1790 -AddressBlock::TlvClear (void)
  1.1791 +PbbAddressBlock::TlvClear (void)
  1.1792  {
  1.1793    return m_addressTlvList.Clear();
  1.1794  }
  1.1795  
  1.1796  void
  1.1797 -AddressBlock::Ref (void) const
  1.1798 +PbbAddressBlock::Ref (void) const
  1.1799  {
  1.1800    m_refCount++;
  1.1801  }
  1.1802  
  1.1803  void
  1.1804 -AddressBlock::Unref (void) const
  1.1805 +PbbAddressBlock::Unref (void) const
  1.1806  {
  1.1807    m_refCount--;
  1.1808    if (m_refCount == 0)
  1.1809 @@ -1955,7 +1953,7 @@
  1.1810  }
  1.1811  
  1.1812  uint32_t
  1.1813 -AddressBlock::GetSerializedSize (void) const
  1.1814 +PbbAddressBlock::GetSerializedSize (void) const
  1.1815  {
  1.1816    /* num-addr + flags */
  1.1817    uint32_t size = 2;
  1.1818 @@ -1999,7 +1997,7 @@
  1.1819  }
  1.1820  
  1.1821  void
  1.1822 -AddressBlock::Serialize (Buffer::Iterator &start) const
  1.1823 +PbbAddressBlock::Serialize (Buffer::Iterator &start) const
  1.1824  {
  1.1825    start.WriteU8 (AddressSize ());
  1.1826  
  1.1827 @@ -2054,7 +2052,7 @@
  1.1828        if (headlen + taillen < GetAddressLength ())
  1.1829          {
  1.1830            uint8_t mid[GetAddressLength ()];
  1.1831 -          for (AddressBlock::ConstAddressIterator iter = AddressBegin ();
  1.1832 +          for (PbbAddressBlock::ConstAddressIterator iter = AddressBegin ();
  1.1833                iter != AddressEnd ();
  1.1834                iter++)
  1.1835              {
  1.1836 @@ -2078,7 +2076,7 @@
  1.1837  }
  1.1838  
  1.1839  void
  1.1840 -AddressBlock::Deserialize (Buffer::Iterator &start)
  1.1841 +PbbAddressBlock::Deserialize (Buffer::Iterator &start)
  1.1842  {
  1.1843    uint8_t numaddr = start.ReadU8 ();
  1.1844    uint8_t flags = start.ReadU8 ();
  1.1845 @@ -2129,13 +2127,13 @@
  1.1846  }
  1.1847  
  1.1848  void
  1.1849 -AddressBlock::Print (std::ostream &os) const
  1.1850 +PbbAddressBlock::Print (std::ostream &os) const
  1.1851  {
  1.1852    Print (os, 0);
  1.1853  }
  1.1854  
  1.1855  void
  1.1856 -AddressBlock::Print (std::ostream &os, int level) const
  1.1857 +PbbAddressBlock::Print (std::ostream &os, int level) const
  1.1858  {
  1.1859    std::string prefix = "";
  1.1860    for (int i = 0; i < level; i++)
  1.1861 @@ -2143,7 +2141,7 @@
  1.1862        prefix.append ("\t");
  1.1863      }
  1.1864  
  1.1865 -  os << prefix << "AddressBlock {" << std::endl;
  1.1866 +  os << prefix << "PbbAddressBlock {" << std::endl;
  1.1867    os << prefix << "\taddresses = " << std::endl;
  1.1868    for (ConstAddressIterator iter = AddressBegin ();
  1.1869        iter != AddressEnd ();
  1.1870 @@ -2166,7 +2164,7 @@
  1.1871  }
  1.1872  
  1.1873  bool
  1.1874 -AddressBlock::operator== (const AddressBlock &other) const
  1.1875 +PbbAddressBlock::operator== (const PbbAddressBlock &other) const
  1.1876  {
  1.1877    if (AddressSize () != other.AddressSize ())
  1.1878      {
  1.1879 @@ -2209,13 +2207,13 @@
  1.1880  }
  1.1881  
  1.1882  bool
  1.1883 -AddressBlock::operator!= (const AddressBlock &other) const
  1.1884 +PbbAddressBlock::operator!= (const PbbAddressBlock &other) const
  1.1885  {
  1.1886    return !(*this == other);
  1.1887  }
  1.1888  
  1.1889  uint8_t
  1.1890 -AddressBlock::GetPrefixFlags (void) const
  1.1891 +PbbAddressBlock::GetPrefixFlags (void) const
  1.1892  {
  1.1893    switch (PrefixSize ())
  1.1894      {
  1.1895 @@ -2232,7 +2230,7 @@
  1.1896  }
  1.1897  
  1.1898  void
  1.1899 -AddressBlock::GetHeadTail (uint8_t *head, uint8_t &headlen,
  1.1900 +PbbAddressBlock::GetHeadTail (uint8_t *head, uint8_t &headlen,
  1.1901      uint8_t *tail, uint8_t &taillen) const
  1.1902  {
  1.1903    headlen = GetAddressLength ();
  1.1904 @@ -2246,7 +2244,7 @@
  1.1905    SerializeAddress (buflast, AddressBegin ());
  1.1906  
  1.1907    /* Skip the first item */
  1.1908 -  for (AddressBlock::ConstAddressIterator iter = AddressBegin ()++;
  1.1909 +  for (PbbAddressBlock::ConstAddressIterator iter = AddressBegin ()++;
  1.1910        iter != AddressEnd ();
  1.1911        iter++)
  1.1912      {
  1.1913 @@ -2295,7 +2293,7 @@
  1.1914  }
  1.1915  
  1.1916  bool
  1.1917 -AddressBlock::HasZeroTail (const uint8_t *tail, uint8_t taillen) const
  1.1918 +PbbAddressBlock::HasZeroTail (const uint8_t *tail, uint8_t taillen) const
  1.1919  {
  1.1920    int i;
  1.1921    for (i = 0; i < taillen; i++)
  1.1922 @@ -2308,61 +2306,61 @@
  1.1923    return i == taillen;
  1.1924  }
  1.1925  
  1.1926 -/* End AddressBlock Class */
  1.1927 +/* End PbbAddressBlock Class */
  1.1928  
  1.1929  uint8_t
  1.1930 -AddressBlockIpv4::GetAddressLength (void) const
  1.1931 +PbbAddressBlockIpv4::GetAddressLength (void) const
  1.1932  {
  1.1933    return 4;
  1.1934  }
  1.1935  
  1.1936  void
  1.1937 -AddressBlockIpv4::SerializeAddress (uint8_t *buffer, ConstAddressIterator iter) const
  1.1938 +PbbAddressBlockIpv4::SerializeAddress (uint8_t *buffer, ConstAddressIterator iter) const
  1.1939  {
  1.1940    Ipv4Address::ConvertFrom (*iter).Serialize (buffer);
  1.1941  }
  1.1942  
  1.1943  Address
  1.1944 -AddressBlockIpv4::DeserializeAddress (uint8_t *buffer) const
  1.1945 +PbbAddressBlockIpv4::DeserializeAddress (uint8_t *buffer) const
  1.1946  {
  1.1947    return Ipv4Address::Deserialize (buffer);
  1.1948  }
  1.1949  
  1.1950  void
  1.1951 -AddressBlockIpv4::PrintAddress (std::ostream &os, ConstAddressIterator iter) const
  1.1952 +PbbAddressBlockIpv4::PrintAddress (std::ostream &os, ConstAddressIterator iter) const
  1.1953  {
  1.1954    Ipv4Address::ConvertFrom (*iter).Print (os);
  1.1955  }
  1.1956  
  1.1957 -/* End AddressBlockIpv4 Class */
  1.1958 +/* End PbbAddressBlockIpv4 Class */
  1.1959  
  1.1960  uint8_t
  1.1961 -AddressBlockIpv6::GetAddressLength (void) const
  1.1962 +PbbAddressBlockIpv6::GetAddressLength (void) const
  1.1963  {
  1.1964    return 16;
  1.1965  }
  1.1966  
  1.1967  void
  1.1968 -AddressBlockIpv6::SerializeAddress (uint8_t *buffer, ConstAddressIterator iter) const
  1.1969 +PbbAddressBlockIpv6::SerializeAddress (uint8_t *buffer, ConstAddressIterator iter) const
  1.1970  {
  1.1971    Ipv6Address::ConvertFrom (*iter).Serialize (buffer);
  1.1972  }
  1.1973  
  1.1974  Address
  1.1975 -AddressBlockIpv6::DeserializeAddress (uint8_t *buffer) const
  1.1976 +PbbAddressBlockIpv6::DeserializeAddress (uint8_t *buffer) const
  1.1977  {
  1.1978    return Ipv6Address::Deserialize (buffer);
  1.1979  }
  1.1980  
  1.1981  void
  1.1982 -AddressBlockIpv6::PrintAddress (std::ostream &os, ConstAddressIterator iter) const
  1.1983 +PbbAddressBlockIpv6::PrintAddress (std::ostream &os, ConstAddressIterator iter) const
  1.1984  {
  1.1985    Ipv6Address::ConvertFrom (*iter).Print (os);
  1.1986  }
  1.1987  
  1.1988 -/* End AddressBlockIpv6 Class */
  1.1989 -
  1.1990 -Tlv::Tlv (void)
  1.1991 +/* End PbbAddressBlockIpv6 Class */
  1.1992 +
  1.1993 +PbbTlv::PbbTlv (void)
  1.1994  {
  1.1995    m_refCount = 1;
  1.1996    m_hasTypeExt = false;
  1.1997 @@ -2373,98 +2371,98 @@
  1.1998  }
  1.1999  
  1.2000  void
  1.2001 -Tlv::SetType (uint8_t type)
  1.2002 +PbbTlv::SetType (uint8_t type)
  1.2003  {
  1.2004    m_type = type;
  1.2005  }
  1.2006  
  1.2007  uint8_t
  1.2008 -Tlv::GetType (void) const
  1.2009 +PbbTlv::GetType (void) const
  1.2010  {
  1.2011    return m_type;
  1.2012  }
  1.2013  
  1.2014  void
  1.2015 -Tlv::SetTypeExt (uint8_t typeExt)
  1.2016 +PbbTlv::SetTypeExt (uint8_t typeExt)
  1.2017  {
  1.2018    m_typeExt = typeExt;
  1.2019    m_hasTypeExt = true;
  1.2020  }
  1.2021  
  1.2022  uint8_t
  1.2023 -Tlv::GetTypeExt (void) const
  1.2024 +PbbTlv::GetTypeExt (void) const
  1.2025  {
  1.2026    NS_ASSERT (HasTypeExt ());
  1.2027    return m_typeExt;
  1.2028  }
  1.2029  
  1.2030  bool
  1.2031 -Tlv::HasTypeExt (void) const
  1.2032 +PbbTlv::HasTypeExt (void) const
  1.2033  {
  1.2034    return m_hasTypeExt;
  1.2035  }
  1.2036  
  1.2037  void
  1.2038 -Tlv::SetIndexStart (uint8_t index)
  1.2039 +PbbTlv::SetIndexStart (uint8_t index)
  1.2040  {
  1.2041    m_indexStart = index;
  1.2042    m_hasIndexStart = true;
  1.2043  }
  1.2044  
  1.2045  uint8_t
  1.2046 -Tlv::GetIndexStart (void) const
  1.2047 +PbbTlv::GetIndexStart (void) const
  1.2048  {
  1.2049    NS_ASSERT (HasIndexStart ());
  1.2050    return m_indexStart;
  1.2051  }
  1.2052  
  1.2053  bool
  1.2054 -Tlv::HasIndexStart (void) const
  1.2055 +PbbTlv::HasIndexStart (void) const
  1.2056  {
  1.2057    return m_hasIndexStart;
  1.2058  }
  1.2059  
  1.2060  void
  1.2061 -Tlv::SetIndexStop (uint8_t index)
  1.2062 +PbbTlv::SetIndexStop (uint8_t index)
  1.2063  {
  1.2064    m_indexStop = index;
  1.2065    m_hasIndexStop = true;
  1.2066  }
  1.2067  
  1.2068  uint8_t
  1.2069 -Tlv::GetIndexStop (void) const
  1.2070 +PbbTlv::GetIndexStop (void) const
  1.2071  {
  1.2072    NS_ASSERT (HasIndexStop ());
  1.2073    return m_indexStop;
  1.2074  }
  1.2075  
  1.2076  bool
  1.2077 -Tlv::HasIndexStop (void) const
  1.2078 +PbbTlv::HasIndexStop (void) const
  1.2079  {
  1.2080    return m_hasIndexStop;
  1.2081  }
  1.2082  
  1.2083  void
  1.2084 -Tlv::SetMultivalue (bool isMultivalue)
  1.2085 +PbbTlv::SetMultivalue (bool isMultivalue)
  1.2086  {
  1.2087    m_isMultivalue = isMultivalue;
  1.2088  }
  1.2089  
  1.2090  bool
  1.2091 -Tlv::IsMultivalue (void) const
  1.2092 +PbbTlv::IsMultivalue (void) const
  1.2093  {
  1.2094    return m_isMultivalue;
  1.2095  }
  1.2096  
  1.2097  void
  1.2098 -Tlv::SetValue (Buffer start)
  1.2099 +PbbTlv::SetValue (Buffer start)
  1.2100  {
  1.2101    m_hasValue = true;
  1.2102    m_value = start;
  1.2103  }
  1.2104  
  1.2105  void
  1.2106 -Tlv::SetValue (const uint8_t * buffer, uint32_t size)
  1.2107 +PbbTlv::SetValue (const uint8_t * buffer, uint32_t size)
  1.2108  {
  1.2109    Buffer value;
  1.2110    value.AddAtStart (size);
  1.2111 @@ -2473,26 +2471,26 @@
  1.2112  }
  1.2113  
  1.2114  Buffer
  1.2115 -Tlv::GetValue (void) const
  1.2116 +PbbTlv::GetValue (void) const
  1.2117  {
  1.2118    NS_ASSERT (HasValue ());
  1.2119    return m_value;
  1.2120  }
  1.2121  
  1.2122  bool
  1.2123 -Tlv::HasValue (void) const
  1.2124 +PbbTlv::HasValue (void) const
  1.2125  {
  1.2126    return m_hasValue;
  1.2127  }
  1.2128  
  1.2129  void
  1.2130 -Tlv::Ref (void) const
  1.2131 +PbbTlv::Ref (void) const
  1.2132  {
  1.2133    m_refCount++;
  1.2134  }
  1.2135  
  1.2136  void
  1.2137 -Tlv::Unref (void) const
  1.2138 +PbbTlv::Unref (void) const
  1.2139  {
  1.2140    m_refCount--;
  1.2141    if (m_refCount == 0)
  1.2142 @@ -2502,7 +2500,7 @@
  1.2143  }
  1.2144  
  1.2145  uint32_t
  1.2146 -Tlv::GetSerializedSize (void) const
  1.2147 +PbbTlv::GetSerializedSize (void) const
  1.2148  {
  1.2149    /* type + flags */
  1.2150    uint32_t size = 2;
  1.2151 @@ -2539,7 +2537,7 @@
  1.2152  }
  1.2153  
  1.2154  void
  1.2155 -Tlv::Serialize (Buffer::Iterator &start) const
  1.2156 +PbbTlv::Serialize (Buffer::Iterator &start) const
  1.2157  {
  1.2158    start.WriteU8 (GetType ());
  1.2159  
  1.2160 @@ -2595,7 +2593,7 @@
  1.2161  }
  1.2162  
  1.2163  void
  1.2164 -Tlv::Deserialize (Buffer::Iterator &start)
  1.2165 +PbbTlv::Deserialize (Buffer::Iterator &start)
  1.2166  {
  1.2167    SetType (start.ReadU8 ());
  1.2168  
  1.2169 @@ -2639,13 +2637,13 @@
  1.2170  }
  1.2171  
  1.2172  void
  1.2173 -Tlv::Print (std::ostream &os) const
  1.2174 +PbbTlv::Print (std::ostream &os) const
  1.2175  {
  1.2176    Print (os, 0);
  1.2177  }
  1.2178  
  1.2179  void
  1.2180 -Tlv::Print (std::ostream &os, int level) const
  1.2181 +PbbTlv::Print (std::ostream &os, int level) const
  1.2182  {
  1.2183    std::string prefix = "";
  1.2184    for (int i = 0; i < level; i++)
  1.2185 @@ -2653,7 +2651,7 @@
  1.2186        prefix.append ("\t");
  1.2187      }
  1.2188  
  1.2189 -  os << prefix << "Tlv {" << std::endl;
  1.2190 +  os << prefix << "PbbTlv {" << std::endl;
  1.2191    os << prefix << "\ttype = " << (int)GetType () << std::endl;
  1.2192  
  1.2193    if (HasTypeExt ())
  1.2194 @@ -2682,7 +2680,7 @@
  1.2195  }
  1.2196  
  1.2197  bool
  1.2198 -Tlv::operator== (const Tlv &other) const
  1.2199 +PbbTlv::operator== (const PbbTlv &other) const
  1.2200  {
  1.2201    if (GetType () != other.GetType ())
  1.2202      {
  1.2203 @@ -2727,61 +2725,59 @@
  1.2204  }
  1.2205  
  1.2206  bool
  1.2207 -Tlv::operator!= (const Tlv &other) const
  1.2208 +PbbTlv::operator!= (const PbbTlv &other) const
  1.2209  {
  1.2210    return !(*this == other);
  1.2211  }
  1.2212  
  1.2213 -/* End Tlv Class */
  1.2214 +/* End PbbTlv Class */
  1.2215  
  1.2216  void 
  1.2217 -AddressTlv::SetIndexStart (uint8_t index)
  1.2218 +PbbAddressTlv::SetIndexStart (uint8_t index)
  1.2219  {
  1.2220 -  Tlv::SetIndexStart (index);
  1.2221 +  PbbTlv::SetIndexStart (index);
  1.2222  }
  1.2223  
  1.2224  uint8_t
  1.2225 -AddressTlv::GetIndexStart (void) const
  1.2226 +PbbAddressTlv::GetIndexStart (void) const
  1.2227  {
  1.2228 -  return Tlv::GetIndexStart ();
  1.2229 +  return PbbTlv::GetIndexStart ();
  1.2230  }
  1.2231  
  1.2232  bool
  1.2233 -AddressTlv::HasIndexStart (void) const
  1.2234 +PbbAddressTlv::HasIndexStart (void) const
  1.2235  {
  1.2236 -  return Tlv::HasIndexStart ();
  1.2237 +  return PbbTlv::HasIndexStart ();
  1.2238  }
  1.2239  
  1.2240  void 
  1.2241 -AddressTlv::SetIndexStop (uint8_t index)
  1.2242 +PbbAddressTlv::SetIndexStop (uint8_t index)
  1.2243  {
  1.2244 -  Tlv::SetIndexStop (index);
  1.2245 +  PbbTlv::SetIndexStop (index);
  1.2246  }
  1.2247  
  1.2248  uint8_t
  1.2249 -AddressTlv::GetIndexStop (void) const
  1.2250 +PbbAddressTlv::GetIndexStop (void) const
  1.2251  {
  1.2252 -  return Tlv::GetIndexStop ();
  1.2253 +  return PbbTlv::GetIndexStop ();
  1.2254  }
  1.2255  
  1.2256  bool
  1.2257 -AddressTlv::HasIndexStop (void) const
  1.2258 +PbbAddressTlv::HasIndexStop (void) const
  1.2259  {
  1.2260 -  return Tlv::HasIndexStop ();
  1.2261 +  return PbbTlv::HasIndexStop ();
  1.2262  }
  1.2263  
  1.2264  void
  1.2265 -AddressTlv::SetMultivalue (bool isMultivalue)
  1.2266 +PbbAddressTlv::SetMultivalue (bool isMultivalue)
  1.2267  {
  1.2268 -  Tlv::SetMultivalue (isMultivalue);
  1.2269 +  PbbTlv::SetMultivalue (isMultivalue);
  1.2270  }
  1.2271  
  1.2272  bool
  1.2273 -AddressTlv::IsMultivalue (void) const
  1.2274 +PbbAddressTlv::IsMultivalue (void) const
  1.2275  {
  1.2276 -  return Tlv::IsMultivalue ();
  1.2277 +  return PbbTlv::IsMultivalue ();
  1.2278  }
  1.2279  
  1.2280 -} /* namespace pbb */
  1.2281 -
  1.2282  } /* namespace ns3 */
     2.1 --- a/src/contrib/packetbb.h	Thu Sep 10 15:32:38 2009 -0400
     2.2 +++ b/src/contrib/packetbb.h	Thu Sep 10 15:33:23 2009 -0400
     2.3 @@ -19,7 +19,7 @@
     2.4   * Author: Tom Wambold <tom5760@gmail.com>
     2.5   */
     2.6  /* These classes implement RFC 5444 - The Generalized Mobile Ad Hoc Network
     2.7 - * (MANET) Packet/Message Format
     2.8 + * (MANET) Packet/PbbMessage Format
     2.9   * See: http://tools.ietf.org/html/rfc5444 for details */
    2.10  
    2.11  #ifndef PACKETBB_H
    2.12 @@ -34,16 +34,14 @@
    2.13  
    2.14  namespace ns3 {
    2.15  
    2.16 -namespace pbb {
    2.17 -
    2.18  /* Forward declare objects */
    2.19 -class PacketBB;
    2.20 -class Message;
    2.21 -class AddressBlock;
    2.22 -class TlvBlock;
    2.23 -class AddressTlvBlock;
    2.24 -class Tlv;
    2.25 -class AddressTlv;
    2.26 +class PbbPacket;
    2.27 +class PbbMessage;
    2.28 +class PbbAddressBlock;
    2.29 +class PbbTlvBlock;
    2.30 +class PbbAddressTlvBlock;
    2.31 +class PbbTlv;
    2.32 +class PbbAddressTlv;
    2.33  
    2.34  enum AddressLength {
    2.35    IPV4 = 3,
    2.36 @@ -51,15 +49,15 @@
    2.37  };
    2.38  
    2.39  /**
    2.40 - * \brief A block of Packet or Message TLVs.
    2.41 + * \brief A block of Packet or PbbMessage TLVs.
    2.42   *
    2.43   * Acts similar to a C++ STL container.  Should not be used for Address TLVs.
    2.44   */
    2.45 -class TlvBlock
    2.46 +class PbbTlvBlock
    2.47  {
    2.48  public:
    2.49 -  typedef std::list< Ptr<Tlv> >::iterator Iterator;
    2.50 -  typedef std::list< Ptr<Tlv> >::const_iterator ConstIterator;
    2.51 +  typedef std::list< Ptr<PbbTlv> >::iterator Iterator;
    2.52 +  typedef std::list< Ptr<PbbTlv> >::const_iterator ConstIterator;
    2.53  
    2.54    Iterator Begin (void);
    2.55    ConstIterator Begin (void) const;
    2.56 @@ -69,16 +67,16 @@
    2.57    int Size (void) const;
    2.58    bool Empty (void) const;
    2.59  
    2.60 -  Ptr<Tlv> Front (void) const;
    2.61 -  Ptr<Tlv> Back (void) const;
    2.62 +  Ptr<PbbTlv> Front (void) const;
    2.63 +  Ptr<PbbTlv> Back (void) const;
    2.64  
    2.65 -  void PushFront (Ptr<Tlv> tlv);
    2.66 +  void PushFront (Ptr<PbbTlv> tlv);
    2.67    void PopFront (void);
    2.68  
    2.69 -  void PushBack (Ptr<Tlv> tlv);
    2.70 +  void PushBack (Ptr<PbbTlv> tlv);
    2.71    void PopBack (void);
    2.72  
    2.73 -  Iterator Insert (Iterator position, const Ptr<Tlv> tlv);
    2.74 +  Iterator Insert (Iterator position, const Ptr<PbbTlv> tlv);
    2.75  
    2.76    Iterator Erase (Iterator position);
    2.77    Iterator Erase (Iterator first, Iterator last);
    2.78 @@ -91,11 +89,11 @@
    2.79    void Print (std::ostream &os) const;
    2.80    void Print (std::ostream &os, int level) const;
    2.81  
    2.82 -  bool operator== (const TlvBlock &other) const;
    2.83 -  bool operator!= (const TlvBlock &other) const;
    2.84 +  bool operator== (const PbbTlvBlock &other) const;
    2.85 +  bool operator!= (const PbbTlvBlock &other) const;
    2.86  
    2.87  private:
    2.88 -  std::list< Ptr<Tlv> > m_tlvList;
    2.89 +  std::list< Ptr<PbbTlv> > m_tlvList;
    2.90  };
    2.91  
    2.92  /**
    2.93 @@ -103,11 +101,11 @@
    2.94   *
    2.95   * Acts similar to a C++ STL container.
    2.96   */
    2.97 -class AddressTlvBlock
    2.98 +class PbbAddressTlvBlock
    2.99  {
   2.100  public:
   2.101 -  typedef std::list< Ptr<AddressTlv> >::iterator Iterator;
   2.102 -  typedef std::list< Ptr<AddressTlv> >::const_iterator ConstIterator;
   2.103 +  typedef std::list< Ptr<PbbAddressTlv> >::iterator Iterator;
   2.104 +  typedef std::list< Ptr<PbbAddressTlv> >::const_iterator ConstIterator;
   2.105  
   2.106    Iterator Begin (void);
   2.107    ConstIterator Begin (void) const;
   2.108 @@ -117,16 +115,16 @@
   2.109    int Size (void) const;
   2.110    bool Empty (void) const;
   2.111  
   2.112 -  Ptr<AddressTlv> Front (void) const;
   2.113 -  Ptr<AddressTlv> Back (void) const;
   2.114 +  Ptr<PbbAddressTlv> Front (void) const;
   2.115 +  Ptr<PbbAddressTlv> Back (void) const;
   2.116  
   2.117 -  void PushFront (Ptr<AddressTlv> tlv);
   2.118 +  void PushFront (Ptr<PbbAddressTlv> tlv);
   2.119    void PopFront (void);
   2.120  
   2.121 -  void PushBack (Ptr<AddressTlv> tlv);
   2.122 +  void PushBack (Ptr<PbbAddressTlv> tlv);
   2.123    void PopBack (void);
   2.124  
   2.125 -  Iterator Insert (Iterator position, const Ptr<AddressTlv> tlv);
   2.126 +  Iterator Insert (Iterator position, const Ptr<PbbAddressTlv> tlv);
   2.127  
   2.128    Iterator Erase (Iterator position);
   2.129    Iterator Erase (Iterator first, Iterator last);
   2.130 @@ -139,25 +137,25 @@
   2.131    void Print (std::ostream &os) const;
   2.132    void Print (std::ostream &os, int level) const;
   2.133  
   2.134 -  bool operator== (const AddressTlvBlock &other) const;
   2.135 -  bool operator!= (const AddressTlvBlock &other) const;
   2.136 +  bool operator== (const PbbAddressTlvBlock &other) const;
   2.137 +  bool operator!= (const PbbAddressTlvBlock &other) const;
   2.138  
   2.139  private:
   2.140 -  std::list< Ptr<AddressTlv> > m_tlvList;
   2.141 +  std::list< Ptr<PbbAddressTlv> > m_tlvList;
   2.142  };
   2.143  
   2.144  /**
   2.145 - * \brief Main PacketBB Packet object.
   2.146 + * \brief Main PbbPacket Packet object.
   2.147   */
   2.148 -class PacketBB : public Header
   2.149 +class PbbPacket : public Header
   2.150  {
   2.151  public:
   2.152 -  typedef std::list< Ptr<Tlv> >::iterator TlvIterator;
   2.153 -  typedef std::list< Ptr<Tlv> >::const_iterator ConstTlvIterator;
   2.154 -  typedef std::list< Ptr<Message> >::iterator MessageIterator;
   2.155 -  typedef std::list< Ptr<Message> >::const_iterator ConstMessageIterator;
   2.156 +  typedef std::list< Ptr<PbbTlv> >::iterator TlvIterator;
   2.157 +  typedef std::list< Ptr<PbbTlv> >::const_iterator ConstTlvIterator;
   2.158 +  typedef std::list< Ptr<PbbMessage> >::iterator MessageIterator;
   2.159 +  typedef std::list< Ptr<PbbMessage> >::const_iterator ConstMessageIterator;
   2.160  
   2.161 -  PacketBB (void);
   2.162 +  PbbPacket (void);
   2.163  
   2.164    uint8_t GetVersion (void) const;
   2.165  
   2.166 @@ -181,14 +179,14 @@
   2.167    int TlvSize (void) const;
   2.168    bool TlvEmpty (void) const;
   2.169  
   2.170 -  Ptr<Tlv> TlvFront (void);
   2.171 -  const Ptr<Tlv> TlvFront (void) const;
   2.172 -  Ptr<Tlv> TlvBack (void);
   2.173 -  const Ptr<Tlv> TlvBack (void) const;
   2.174 +  Ptr<PbbTlv> TlvFront (void);
   2.175 +  const Ptr<PbbTlv> TlvFront (void) const;
   2.176 +  Ptr<PbbTlv> TlvBack (void);
   2.177 +  const Ptr<PbbTlv> TlvBack (void) const;
   2.178  
   2.179 -  void TlvPushFront (Ptr<Tlv>);
   2.180 +  void TlvPushFront (Ptr<PbbTlv>);
   2.181    void TlvPopFront (void);
   2.182 -  void TlvPushBack (Ptr<Tlv>);
   2.183 +  void TlvPushBack (Ptr<PbbTlv>);
   2.184    void TlvPopBack (void);
   2.185  
   2.186    TlvIterator Erase (TlvIterator position);
   2.187 @@ -205,14 +203,14 @@
   2.188    int MessageSize (void) const;
   2.189    bool MessageEmpty (void) const;
   2.190  
   2.191 -  Ptr<Message> MessageFront (void);
   2.192 -  const Ptr<Message> MessageFront (void) const;
   2.193 -  Ptr<Message> MessageBack (void);
   2.194 -  const Ptr<Message> MessageBack (void) const;
   2.195 +  Ptr<PbbMessage> MessageFront (void);
   2.196 +  const Ptr<PbbMessage> MessageFront (void) const;
   2.197 +  Ptr<PbbMessage> MessageBack (void);
   2.198 +  const Ptr<PbbMessage> MessageBack (void) const;
   2.199  
   2.200 -  void MessagePushFront (Ptr<Message> message);
   2.201 +  void MessagePushFront (Ptr<PbbMessage> message);
   2.202    void MessagePopFront (void);
   2.203 -  void MessagePushBack (Ptr<Message> message);
   2.204 +  void MessagePushBack (Ptr<PbbMessage> message);
   2.205    void MessagePopBack (void);
   2.206  
   2.207    MessageIterator Erase (MessageIterator position);
   2.208 @@ -237,15 +235,15 @@
   2.209    virtual uint32_t Deserialize (Buffer::Iterator start);
   2.210    virtual void Print (std::ostream &os) const;
   2.211  
   2.212 -  bool operator== (const PacketBB &other) const;
   2.213 -  bool operator!= (const PacketBB &other) const;
   2.214 +  bool operator== (const PbbPacket &other) const;
   2.215 +  bool operator!= (const PbbPacket &other) const;
   2.216  
   2.217  protected:
   2.218    void SerializePacketTlv (Buffer::Iterator &start) const;
   2.219  
   2.220  private:
   2.221 -  TlvBlock m_tlvList;
   2.222 -  std::list< Ptr<Message> > m_messageList;
   2.223 +  PbbTlvBlock m_tlvList;
   2.224 +  std::list< Ptr<PbbMessage> > m_messageList;
   2.225  
   2.226    uint8_t m_version;
   2.227  
   2.228 @@ -256,21 +254,21 @@
   2.229  };
   2.230  
   2.231  /**
   2.232 - * \brief A message within a PacketBB packet.
   2.233 + * \brief A message within a PbbPacket packet.
   2.234   *
   2.235 - * There may be any number of messages in one PacketBB packet.
   2.236 - * This is a pure virutal base class, you should instantiate either MessageIpv4
   2.237 - * or MessageIpv6.
   2.238 + * There may be any number of messages in one PbbPacket packet.
   2.239 + * This is a pure virutal base class, you should instantiate either PbbMessageIpv4
   2.240 + * or PbbMessageIpv6.
   2.241   */
   2.242 -class Message
   2.243 +class PbbMessage
   2.244  {
   2.245  public:
   2.246 -  typedef std::list< Ptr<Tlv> >::iterator TlvIterator;
   2.247 -  typedef std::list< Ptr<Tlv> >::const_iterator ConstTlvIterator;
   2.248 -  typedef std::list< Ptr<AddressBlock> >::iterator AddressBlockIterator;
   2.249 -  typedef std::list< Ptr<AddressBlock> >::const_iterator ConstAddressBlockIterator;
   2.250 +  typedef std::list< Ptr<PbbTlv> >::iterator TlvIterator;
   2.251 +  typedef std::list< Ptr<PbbTlv> >::const_iterator ConstTlvIterator;
   2.252 +  typedef std::list< Ptr<PbbAddressBlock> >::iterator AddressBlockIterator;
   2.253 +  typedef std::list< Ptr<PbbAddressBlock> >::const_iterator ConstAddressBlockIterator;
   2.254  
   2.255 -  Message (void);
   2.256 +  PbbMessage (void);
   2.257  
   2.258    void SetType (uint8_t type);
   2.259    uint8_t GetType (void) const;
   2.260 @@ -315,7 +313,7 @@
   2.261    uint16_t GetSequenceNumber (void) const;
   2.262    bool HasSequenceNumber (void) const;
   2.263  
   2.264 -  /* Manipulating Message TLVs */
   2.265 +  /* Manipulating PbbMessage TLVs */
   2.266  
   2.267    TlvIterator TlvBegin ();
   2.268    ConstTlvIterator TlvBegin () const;
   2.269 @@ -325,14 +323,14 @@
   2.270    int TlvSize (void) const;
   2.271    bool TlvEmpty (void) const;
   2.272  
   2.273 -  Ptr<Tlv> TlvFront (void);
   2.274 -  const Ptr<Tlv> TlvFront (void) const;
   2.275 -  Ptr<Tlv> TlvBack (void);
   2.276 -  const Ptr<Tlv> TlvBack (void) const;
   2.277 +  Ptr<PbbTlv> TlvFront (void);
   2.278 +  const Ptr<PbbTlv> TlvFront (void) const;
   2.279 +  Ptr<PbbTlv> TlvBack (void);
   2.280 +  const Ptr<PbbTlv> TlvBack (void) const;
   2.281  
   2.282 -  void TlvPushFront (Ptr<Tlv> tlv);
   2.283 +  void TlvPushFront (Ptr<PbbTlv> tlv);
   2.284    void TlvPopFront (void);
   2.285 -  void TlvPushBack (Ptr<Tlv> tlv);
   2.286 +  void TlvPushBack (Ptr<PbbTlv> tlv);
   2.287    void TlvPopBack (void);
   2.288  
   2.289    TlvIterator TlvErase (TlvIterator position);
   2.290 @@ -349,14 +347,14 @@
   2.291    int AddressBlockSize (void) const;
   2.292    bool AddressBlockEmpty (void) const;
   2.293  
   2.294 -  Ptr<AddressBlock> AddressBlockFront (void);
   2.295 -  const Ptr<AddressBlock> AddressBlockFront (void) const;
   2.296 -  Ptr<AddressBlock> AddressBlockBack (void);
   2.297 -  const Ptr<AddressBlock> AddressBlockBack (void) const;
   2.298 +  Ptr<PbbAddressBlock> AddressBlockFront (void);
   2.299 +  const Ptr<PbbAddressBlock> AddressBlockFront (void) const;
   2.300 +  Ptr<PbbAddressBlock> AddressBlockBack (void);
   2.301 +  const Ptr<PbbAddressBlock> AddressBlockBack (void) const;
   2.302  
   2.303 -  void AddressBlockPushFront (Ptr<AddressBlock> block);
   2.304 +  void AddressBlockPushFront (Ptr<PbbAddressBlock> block);
   2.305    void AddressBlockPopFront (void);
   2.306 -  void AddressBlockPushBack (Ptr<AddressBlock> block);
   2.307 +  void AddressBlockPushBack (Ptr<PbbAddressBlock> block);
   2.308    void AddressBlockPopBack (void);
   2.309  
   2.310    AddressBlockIterator AddressBlockErase (AddressBlockIterator position);
   2.311 @@ -369,18 +367,18 @@
   2.312    void Unref (void) const;
   2.313  
   2.314    /* Returns 0 on error */
   2.315 -  static Ptr<Message> DeserializeMessage (Buffer::Iterator &start);
   2.316 +  static Ptr<PbbMessage> DeserializeMessage (Buffer::Iterator &start);
   2.317    uint32_t GetSerializedSize (void) const;
   2.318    void Serialize (Buffer::Iterator &start) const;
   2.319    void Deserialize (Buffer::Iterator &start);
   2.320    void Print (std::ostream &os) const;
   2.321    void Print (std::ostream &os, int level) const;
   2.322  
   2.323 -  bool operator== (const Message &other) const;
   2.324 -  bool operator!= (const Message &other) const;
   2.325 +  bool operator== (const PbbMessage &other) const;
   2.326 +  bool operator!= (const PbbMessage &other) const;
   2.327  
   2.328  protected:
   2.329 -  /* Message size in bytes - 1.
   2.330 +  /* PbbMessage size in bytes - 1.
   2.331     *
   2.332     * IPv4 = 4 - 1 = 3, IPv6 = 16 - 1 = 15
   2.333     */
   2.334 @@ -390,11 +388,11 @@
   2.335    virtual Address DeserializeOriginatorAddress (Buffer::Iterator &start) const = 0;
   2.336    virtual void PrintOriginatorAddress (std::ostream &os) const = 0;
   2.337  
   2.338 -  virtual Ptr<AddressBlock> AddressBlockDeserialize (Buffer::Iterator &start) const = 0;
   2.339 +  virtual Ptr<PbbAddressBlock> AddressBlockDeserialize (Buffer::Iterator &start) const = 0;
   2.340  
   2.341  private:
   2.342 -  TlvBlock m_tlvList;
   2.343 -  std::list< Ptr<AddressBlock> > m_addressBlockList;
   2.344 +  PbbTlvBlock m_tlvList;
   2.345 +  std::list< Ptr<PbbAddressBlock> > m_addressBlockList;
   2.346  
   2.347    uint8_t m_type;
   2.348    AddressLength m_addrSize;
   2.349 @@ -415,11 +413,11 @@
   2.350  };
   2.351  
   2.352  /**
   2.353 - * \brief Concrete IPv4 specific Message.
   2.354 + * \brief Concrete IPv4 specific PbbMessage.
   2.355   *
   2.356   * This message will only contain IPv4 addresses.
   2.357   */
   2.358 -class MessageIpv4 : public Message {
   2.359 +class PbbMessageIpv4 : public PbbMessage {
   2.360  protected:
   2.361    virtual AddressLength GetAddressLength (void) const;
   2.362  
   2.363 @@ -427,15 +425,15 @@
   2.364    virtual Address DeserializeOriginatorAddress (Buffer::Iterator &start) const;
   2.365    virtual void PrintOriginatorAddress (std::ostream &os) const;
   2.366  
   2.367 -  virtual Ptr<AddressBlock> AddressBlockDeserialize (Buffer::Iterator &start) const;
   2.368 +  virtual Ptr<PbbAddressBlock> AddressBlockDeserialize (Buffer::Iterator &start) const;
   2.369  };
   2.370  
   2.371  /**
   2.372 - * \brief Concrete IPv6 specific Message class.
   2.373 + * \brief Concrete IPv6 specific PbbMessage class.
   2.374   *
   2.375   * This message will only contain IPv6 addresses.
   2.376   */
   2.377 -class MessageIpv6 : public Message {
   2.378 +class PbbMessageIpv6 : public PbbMessage {
   2.379  protected:
   2.380    virtual AddressLength GetAddressLength (void) const;
   2.381  
   2.382 @@ -443,16 +441,16 @@
   2.383    virtual Address DeserializeOriginatorAddress (Buffer::Iterator &start) const;
   2.384    virtual void PrintOriginatorAddress (std::ostream &os) const;
   2.385  
   2.386 -  virtual Ptr<AddressBlock> AddressBlockDeserialize (Buffer::Iterator &start) const;
   2.387 +  virtual Ptr<PbbAddressBlock> AddressBlockDeserialize (Buffer::Iterator &start) const;
   2.388  };
   2.389  
   2.390  /**
   2.391   * \brief An Address Block and its associated Address TLV Blocks.
   2.392   *
   2.393   * This is a pure virtual base class, you should instantiate either
   2.394 - * AddressBlockIpv4 or AddressBlockIpv6.
   2.395 + * PbbAddressBlockIpv4 or PbbAddressBlockIpv6.
   2.396   */
   2.397 -class AddressBlock
   2.398 +class PbbAddressBlock
   2.399  {
   2.400  public:
   2.401    typedef std::list< Address >::iterator AddressIterator;
   2.402 @@ -461,10 +459,10 @@
   2.403    typedef std::list<uint8_t>::iterator PrefixIterator;
   2.404    typedef std::list<uint8_t>::const_iterator ConstPrefixIterator;
   2.405  
   2.406 -  typedef AddressTlvBlock::Iterator TlvIterator;
   2.407 -  typedef AddressTlvBlock::ConstIterator ConstTlvIterator;
   2.408 +  typedef PbbAddressTlvBlock::Iterator TlvIterator;
   2.409 +  typedef PbbAddressTlvBlock::ConstIterator ConstTlvIterator;
   2.410  
   2.411 -  AddressBlock ();
   2.412 +  PbbAddressBlock ();
   2.413  
   2.414    /* Manipulating the address block */
   2.415  
   2.416 @@ -527,18 +525,18 @@
   2.417    int TlvSize (void) const;
   2.418    bool TlvEmpty (void) const;
   2.419  
   2.420 -  Ptr<AddressTlv> TlvFront (void);
   2.421 -  const Ptr<AddressTlv> TlvFront (void) const;
   2.422 -  Ptr<AddressTlv> TlvBack (void);
   2.423 -  const Ptr<AddressTlv> TlvBack (void) const;
   2.424 +  Ptr<PbbAddressTlv> TlvFront (void);
   2.425 +  const Ptr<PbbAddressTlv> TlvFront (void) const;
   2.426 +  Ptr<PbbAddressTlv> TlvBack (void);
   2.427 +  const Ptr<PbbAddressTlv> TlvBack (void) const;
   2.428  
   2.429 -  void TlvPushFront (Ptr<AddressTlv> address);
   2.430 +  void TlvPushFront (Ptr<PbbAddressTlv> address);
   2.431    void TlvPopFront (void);
   2.432  
   2.433 -  void TlvPushBack (Ptr<AddressTlv> address);
   2.434 +  void TlvPushBack (Ptr<PbbAddressTlv> address);
   2.435    void TlvPopBack (void);
   2.436  
   2.437 -  TlvIterator TlvInsert (TlvIterator position, const Ptr<Tlv> value);
   2.438 +  TlvIterator TlvInsert (TlvIterator position, const Ptr<PbbTlv> value);
   2.439  
   2.440    TlvIterator TlvErase (TlvIterator position);
   2.441    TlvIterator TlvErase (TlvIterator first, TlvIterator last);
   2.442 @@ -555,8 +553,8 @@
   2.443    void Print (std::ostream &os) const;
   2.444    void Print (std::ostream &os, int level) const;
   2.445  
   2.446 -  bool operator== (const AddressBlock &other) const;
   2.447 -  bool operator!= (const AddressBlock &other) const;
   2.448 +  bool operator== (const PbbAddressBlock &other) const;
   2.449 +  bool operator!= (const PbbAddressBlock &other) const;
   2.450  
   2.451  protected:
   2.452    virtual uint8_t GetAddressLength (void) const = 0;
   2.453 @@ -573,17 +571,17 @@
   2.454  
   2.455    std::list<Address> m_addressList;
   2.456    std::list<uint8_t> m_prefixList;
   2.457 -  AddressTlvBlock m_addressTlvList;
   2.458 +  PbbAddressTlvBlock m_addressTlvList;
   2.459  
   2.460    mutable uint32_t m_refCount;
   2.461  };
   2.462  
   2.463  /**
   2.464 - * \brief Concrete IPv4 specific AddressBlock.
   2.465 + * \brief Concrete IPv4 specific PbbAddressBlock.
   2.466   *
   2.467   * This address block will only contain IPv4 addresses.
   2.468   */
   2.469 -class AddressBlockIpv4 : public AddressBlock
   2.470 +class PbbAddressBlockIpv4 : public PbbAddressBlock
   2.471  {
   2.472  protected:
   2.473    virtual uint8_t GetAddressLength (void) const;
   2.474 @@ -594,11 +592,11 @@
   2.475  };
   2.476  
   2.477  /**
   2.478 - * \brief Concrete IPv6 specific AddressBlock.
   2.479 + * \brief Concrete IPv6 specific PbbAddressBlock.
   2.480   *
   2.481   * This address block will only contain IPv6 addresses.
   2.482   */
   2.483 -class AddressBlockIpv6 : public AddressBlock
   2.484 +class PbbAddressBlockIpv6 : public PbbAddressBlock
   2.485  {
   2.486  protected:
   2.487    virtual uint8_t GetAddressLength (void) const;
   2.488 @@ -611,10 +609,10 @@
   2.489  /**
   2.490   * \brief A packet or message TLV
   2.491   */
   2.492 -class Tlv
   2.493 +class PbbTlv
   2.494  {
   2.495  public:
   2.496 -  Tlv (void);
   2.497 +  PbbTlv (void);
   2.498  
   2.499    void SetType (uint8_t type);
   2.500    uint8_t GetType (void) const;
   2.501 @@ -650,8 +648,8 @@
   2.502    void Print (std::ostream &os) const;
   2.503    void Print (std::ostream &os, int level) const;
   2.504  
   2.505 -  bool operator== (const Tlv &other) const;
   2.506 -  bool operator!= (const Tlv &other) const;
   2.507 +  bool operator== (const PbbTlv &other) const;
   2.508 +  bool operator!= (const PbbTlv &other) const;
   2.509  
   2.510  protected:
   2.511    void SetIndexStart (uint8_t index);
   2.512 @@ -687,13 +685,13 @@
   2.513  /**
   2.514   * \brief An Address TLV
   2.515   */
   2.516 -class AddressTlv : public Tlv
   2.517 +class PbbAddressTlv : public PbbTlv
   2.518  {
   2.519  public:
   2.520    void SetIndexStart (uint8_t index);
   2.521    /**
   2.522     * \returns the first (inclusive) index of the address in the corresponding
   2.523 -   * AddressBlock that this TLV applies to.
   2.524 +   * PbbAddressBlock that this TLV applies to.
   2.525     *
   2.526     * Calling this while HasIndexStart is False is undefined.  Make sure you
   2.527     * check it first.  This will be checked by an assert in debug builds.
   2.528 @@ -704,7 +702,7 @@
   2.529    void SetIndexStop (uint8_t index);
   2.530    /**
   2.531     * \returns the last (inclusive) index of the address in the corresponding
   2.532 -   * AddressBlock that this TLV applies to.
   2.533 +   * PbbAddressBlock that this TLV applies to.
   2.534     *
   2.535     * Calling this while HasIndexStop is False is undefined.  Make sure you
   2.536     * check it first.  This will be checked by an assert in debug builds.
   2.537 @@ -716,8 +714,6 @@
   2.538    bool IsMultivalue (void) const;
   2.539  };
   2.540  
   2.541 -} /* namespace pbb */
   2.542 -
   2.543  } /* namespace ns3 */
   2.544  
   2.545  #endif /* PACKETBB_H */
     3.1 --- a/src/contrib/test-packetbb.cc	Thu Sep 10 15:32:38 2009 -0400
     3.2 +++ b/src/contrib/test-packetbb.cc	Thu Sep 10 15:33:23 2009 -0400
     3.3 @@ -18,7 +18,6 @@
     3.4   * 
     3.5   * Author: Tom Wambold <tom5760@gmail.com>
     3.6   */
     3.7 -/** TODO: Find out why msg-addr-length is set to 0 in tests */
     3.8  
     3.9  #include <iostream>
    3.10  
    3.11 @@ -29,12 +28,12 @@
    3.12  
    3.13  using namespace std;
    3.14  using namespace ns3;
    3.15 -using namespace ns3::pbb;
    3.16  
    3.17  class PacketBBTester
    3.18  {
    3.19  public:
    3.20 -  PacketBBTester (int testnum, PacketBB &reference, const uint8_t * buffer, uint32_t size) :
    3.21 +  PacketBBTester (int testnum, PbbPacket &reference, const uint8_t * buffer,
    3.22 +      uint32_t size) :
    3.23      m_refPacket(reference)
    3.24    {
    3.25      m_refBuffer.AddAtStart (size);
    3.26 @@ -77,7 +76,7 @@
    3.27  
    3.28    bool TestDeserialize (void)
    3.29    {
    3.30 -    PacketBB newPacket;
    3.31 +    PbbPacket newPacket;
    3.32      if (newPacket.Deserialize (m_refBuffer.Begin ()) != m_refBuffer.GetSize ())
    3.33        {
    3.34          return false;
    3.35 @@ -114,7 +113,7 @@
    3.36    }
    3.37  
    3.38    Buffer m_refBuffer;
    3.39 -  PacketBB &m_refPacket;
    3.40 +  PbbPacket &m_refPacket;
    3.41  };
    3.42  
    3.43  int main (void)
    3.44 @@ -133,7 +132,7 @@
    3.45     * 	`------------------
    3.46     */
    3.47    {
    3.48 -    PacketBB packet;
    3.49 +    PbbPacket packet;
    3.50      uint8_t buffer[] = {0x00};
    3.51      PacketBBTester test(testnum++, packet, buffer, sizeof(buffer));
    3.52    }
    3.53 @@ -148,7 +147,7 @@
    3.54     * `------------------
    3.55     */
    3.56    {
    3.57 -    PacketBB packet;
    3.58 +    PbbPacket packet;
    3.59      packet.SetSequenceNumber (2);
    3.60      uint8_t buffer[] = {0x08, 0x00, 0x02};
    3.61      PacketBBTester test(testnum++, packet, buffer, sizeof(buffer));
    3.62 @@ -165,7 +164,7 @@
    3.63     * This test has the phastlv flag set to 1 with no tlvs.
    3.64     * I'll come back to this one later.
    3.65    {
    3.66 -    PacketBB packet;
    3.67 +    PbbPacket packet;
    3.68      packet.SetSequenceNumber (3);
    3.69      uint8_t buffer[] = {0x0c, 0x00, 0x03, 0x00, 0x00};
    3.70      PacketBBTester test(testnum++, packet, buffer, sizeof(buffer));
    3.71 @@ -187,10 +186,10 @@
    3.72  	 * `------------------
    3.73     */
    3.74    {
    3.75 -    PacketBB packet;
    3.76 +    PbbPacket packet;
    3.77      packet.SetSequenceNumber (4);
    3.78  
    3.79 -    Ptr<Tlv> tlv = Create<Tlv>();
    3.80 +    Ptr<PbbTlv> tlv = Create<PbbTlv>();
    3.81      tlv->SetType (1);
    3.82  
    3.83      packet.TlvPushBack (tlv);
    3.84 @@ -218,14 +217,14 @@
    3.85  	 * `------------------
    3.86     */
    3.87    {
    3.88 -    PacketBB packet;
    3.89 +    PbbPacket packet;
    3.90      packet.SetSequenceNumber (5);
    3.91  
    3.92 -    Ptr<Tlv> tlv1 = Create<Tlv>();
    3.93 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv>();
    3.94      tlv1->SetType (1);
    3.95      packet.TlvPushBack (tlv1);
    3.96  
    3.97 -    Ptr<Tlv> tlv2 = Create<Tlv>();
    3.98 +    Ptr<PbbTlv> tlv2 = Create<PbbTlv>();
    3.99      tlv2->SetType (2);
   3.100      tlv2->SetTypeExt (100);
   3.101      packet.TlvPushBack (tlv2);
   3.102 @@ -256,14 +255,14 @@
   3.103  	 * `------------------
   3.104     */
   3.105    {
   3.106 -    PacketBB packet;
   3.107 +    PbbPacket packet;
   3.108      packet.SetSequenceNumber (6);
   3.109  
   3.110 -    Ptr<Tlv> tlv1 = Create<Tlv>();
   3.111 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv>();
   3.112      tlv1->SetType (1);
   3.113      packet.TlvPushBack (tlv1);
   3.114  
   3.115 -    Ptr<Tlv> tlv2 = Create<Tlv>();
   3.116 +    Ptr<PbbTlv> tlv2 = Create<PbbTlv>();
   3.117      tlv2->SetType (2);
   3.118      tlv2->SetTypeExt (100);
   3.119  
   3.120 @@ -295,92 +294,92 @@
   3.121  	 * |    |     - TLV
   3.122  	 * |    |         Flags = 152
   3.123  	 * |    |         Type = 2; Type ext. = 100; Value = 00  01  02  03
   3.124 -	 * |    |                                          04  05  06  07
   3.125 -	 * |    |                                          08  09  0a  0b
   3.126 -	 * |    |                                          0c  0d  0e  0f
   3.127 -	 * |    |                                          10  11  12  13
   3.128 -	 * |    |                                          14  15  16  17
   3.129 -	 * |    |                                          18  19  1a  1b
   3.130 -	 * |    |                                          1c  1d  1e  1f
   3.131 -	 * |    |                                          20  21  22  23
   3.132 -	 * |    |                                          24  25  26  27
   3.133 -	 * |    |                                          28  29  2a  2b
   3.134 -	 * |    |                                          2c  2d  2e  2f
   3.135 -	 * |    |                                          30  31  32  33
   3.136 -	 * |    |                                          34  35  36  37
   3.137 -	 * |    |                                          38  39  3a  3b
   3.138 -	 * |    |                                          3c  3d  3e  3f
   3.139 -	 * |    |                                          40  41  42  43
   3.140 -	 * |    |                                          44  45  46  47
   3.141 -	 * |    |                                          48  49  4a  4b
   3.142 -	 * |    |                                          4c  4d  4e  4f
   3.143 -	 * |    |                                          50  51  52  53
   3.144 -	 * |    |                                          54  55  56  57
   3.145 -	 * |    |                                          58  59  5a  5b
   3.146 -	 * |    |                                          5c  5d  5e  5f
   3.147 -	 * |    |                                          60  61  62  63
   3.148 -	 * |    |                                          64  65  66  67
   3.149 -	 * |    |                                          68  69  6a  6b
   3.150 -	 * |    |                                          6c  6d  6e  6f
   3.151 -	 * |    |                                          70  71  72  73
   3.152 -	 * |    |                                          74  75  76  77
   3.153 -	 * |    |                                          78  79  7a  7b
   3.154 -	 * |    |                                          7c  7d  7e  7f
   3.155 -	 * |    |                                          80  81  82  83
   3.156 -	 * |    |                                          84  85  86  87
   3.157 -	 * |    |                                          88  89  8a  8b
   3.158 -	 * |    |                                          8c  8d  8e  8f
   3.159 -	 * |    |                                          90  91  92  93
   3.160 -	 * |    |                                          94  95  96  97
   3.161 -	 * |    |                                          98  99  9a  9b
   3.162 -	 * |    |                                          9c  9d  9e  9f
   3.163 -	 * |    |                                          a0  a1  a2  a3
   3.164 -	 * |    |                                          a4  a5  a6  a7
   3.165 -	 * |    |                                          a8  a9  aa  ab
   3.166 -	 * |    |                                          ac  ad  ae  af
   3.167 -	 * |    |                                          b0  b1  b2  b3
   3.168 -	 * |    |                                          b4  b5  b6  b7
   3.169 -	 * |    |                                          b8  b9  ba  bb
   3.170 -	 * |    |                                          bc  bd  be  bf
   3.171 -	 * |    |                                          c0  c1  c2  c3
   3.172 -	 * |    |                                          c4  c5  c6  c7
   3.173 -	 * |    |                                          c8  c9  ca  cb
   3.174 -	 * |    |                                          cc  cd  ce  cf
   3.175 -	 * |    |                                          d0  d1  d2  d3
   3.176 -	 * |    |                                          d4  d5  d6  d7
   3.177 -	 * |    |                                          d8  d9  da  db
   3.178 -	 * |    |                                          dc  dd  de  df
   3.179 -	 * |    |                                          e0  e1  e2  e3
   3.180 -	 * |    |                                          e4  e5  e6  e7
   3.181 -	 * |    |                                          e8  e9  ea  eb
   3.182 -	 * |    |                                          ec  ed  ee  ef
   3.183 -	 * |    |                                          f0  f1  f2  f3
   3.184 -	 * |    |                                          f4  f5  f6  f7
   3.185 -	 * |    |                                          f8  f9  fa  fb
   3.186 -	 * |    |                                          fc  fd  fe  00
   3.187 -	 * |    |                                          01  02  03  04
   3.188 -	 * |    |                                          05  06  07  08
   3.189 -	 * |    |                                          09  0a  0b  0c
   3.190 -	 * |    |                                          0d  0e  0f  10
   3.191 -	 * |    |                                          11  12  13  14
   3.192 -	 * |    |                                          15  16  17  18
   3.193 -	 * |    |                                          19  1a  1b  1c
   3.194 -	 * |    |                                          1d  1e  1f  20
   3.195 -	 * |    |                                          21  22  23  24
   3.196 -	 * |    |                                          25  26  27  28
   3.197 -	 * |    |                                          29  2a  2b  2c
   3.198 +	 * |    |                                            04  05  06  07
   3.199 +	 * |    |                                            08  09  0a  0b
   3.200 +	 * |    |                                            0c  0d  0e  0f
   3.201 +	 * |    |                                            10  11  12  13
   3.202 +	 * |    |                                            14  15  16  17
   3.203 +	 * |    |                                            18  19  1a  1b
   3.204 +	 * |    |                                            1c  1d  1e  1f
   3.205 +	 * |    |                                            20  21  22  23
   3.206 +	 * |    |                                            24  25  26  27
   3.207 +	 * |    |                                            28  29  2a  2b
   3.208 +	 * |    |                                            2c  2d  2e  2f
   3.209 +	 * |    |                                            30  31  32  33
   3.210 +	 * |    |                                            34  35  36  37
   3.211 +	 * |    |                                            38  39  3a  3b
   3.212 +	 * |    |                                            3c  3d  3e  3f
   3.213 +	 * |    |                                            40  41  42  43
   3.214 +	 * |    |                                            44  45  46  47
   3.215 +	 * |    |                                            48  49  4a  4b
   3.216 +	 * |    |                                            4c  4d  4e  4f
   3.217 +	 * |    |                                            50  51  52  53
   3.218 +	 * |    |                                            54  55  56  57
   3.219 +	 * |    |                                            58  59  5a  5b
   3.220 +	 * |    |                                            5c  5d  5e  5f
   3.221 +	 * |    |                                            60  61  62  63
   3.222 +	 * |    |                                            64  65  66  67
   3.223 +	 * |    |                                            68  69  6a  6b
   3.224 +	 * |    |                                            6c  6d  6e  6f
   3.225 +	 * |    |                                            70  71  72  73
   3.226 +	 * |    |                                            74  75  76  77
   3.227 +	 * |    |                                            78  79  7a  7b
   3.228 +	 * |    |                                            7c  7d  7e  7f
   3.229 +	 * |    |                                            80  81  82  83
   3.230 +	 * |    |                                            84  85  86  87
   3.231 +	 * |    |                                            88  89  8a  8b
   3.232 +	 * |    |                                            8c  8d  8e  8f
   3.233 +	 * |    |                                            90  91  92  93
   3.234 +	 * |    |                                            94  95  96  97
   3.235 +	 * |    |                                            98  99  9a  9b
   3.236 +	 * |    |                                            9c  9d  9e  9f
   3.237 +	 * |    |                                            a0  a1  a2  a3
   3.238 +	 * |    |                                            a4  a5  a6  a7
   3.239 +	 * |    |                                            a8  a9  aa  ab
   3.240 +	 * |    |                                            ac  ad  ae  af
   3.241 +	 * |    |                                            b0  b1  b2  b3
   3.242 +	 * |    |                                            b4  b5  b6  b7
   3.243 +	 * |    |                                            b8  b9  ba  bb
   3.244 +	 * |    |                                            bc  bd  be  bf
   3.245 +	 * |    |                                            c0  c1  c2  c3
   3.246 +	 * |    |                                            c4  c5  c6  c7
   3.247 +	 * |    |                                            c8  c9  ca  cb
   3.248 +	 * |    |                                            cc  cd  ce  cf
   3.249 +	 * |    |                                            d0  d1  d2  d3
   3.250 +	 * |    |                                            d4  d5  d6  d7
   3.251 +	 * |    |                                            d8  d9  da  db
   3.252 +	 * |    |                                            dc  dd  de  df
   3.253 +	 * |    |                                            e0  e1  e2  e3
   3.254 +	 * |    |                                            e4  e5  e6  e7
   3.255 +	 * |    |                                            e8  e9  ea  eb
   3.256 +	 * |    |                                            ec  ed  ee  ef
   3.257 +	 * |    |                                            f0  f1  f2  f3
   3.258 +	 * |    |                                            f4  f5  f6  f7
   3.259 +	 * |    |                                            f8  f9  fa  fb
   3.260 +	 * |    |                                            fc  fd  fe  00
   3.261 +	 * |    |                                            01  02  03  04
   3.262 +	 * |    |                                            05  06  07  08
   3.263 +	 * |    |                                            09  0a  0b  0c
   3.264 +	 * |    |                                            0d  0e  0f  10
   3.265 +	 * |    |                                            11  12  13  14
   3.266 +	 * |    |                                            15  16  17  18
   3.267 +	 * |    |                                            19  1a  1b  1c
   3.268 +	 * |    |                                            1d  1e  1f  20
   3.269 +	 * |    |                                            21  22  23  24
   3.270 +	 * |    |                                            25  26  27  28
   3.271 +	 * |    |                                            29  2a  2b  2c
   3.272  	 * |    |                                          
   3.273  	 * `------------------
   3.274     */
   3.275    {
   3.276 -    PacketBB packet;
   3.277 +    PbbPacket packet;
   3.278      packet.SetSequenceNumber (7);
   3.279  
   3.280 -    Ptr<Tlv> tlv1 = Create<Tlv>();
   3.281 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv>();
   3.282      tlv1->SetType (1);
   3.283      packet.TlvPushBack (tlv1);
   3.284  
   3.285 -    Ptr<Tlv> tlv2 = Create<Tlv>();
   3.286 +    Ptr<PbbTlv> tlv2 = Create<PbbTlv>();
   3.287      tlv2->SetType (2);
   3.288      tlv2->SetTypeExt (100);
   3.289  
   3.290 @@ -569,14 +568,14 @@
   3.291  	 * `------------------
   3.292    */
   3.293    {
   3.294 -    PacketBB packet;
   3.295 +    PbbPacket packet;
   3.296      packet.SetSequenceNumber (8);
   3.297  
   3.298 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.299 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.300      tlv1->SetType (1);
   3.301      packet.TlvPushBack (tlv1);
   3.302  
   3.303 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.304 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.305      msg1->SetType (1);
   3.306      packet.MessagePushBack (msg1);
   3.307  
   3.308 @@ -618,18 +617,18 @@
   3.309  	 * `------------------
   3.310    */
   3.311    {
   3.312 -    PacketBB packet;
   3.313 +    PbbPacket packet;
   3.314      packet.SetSequenceNumber (9);
   3.315  
   3.316 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.317 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.318      tlv1->SetType (1);
   3.319      packet.TlvPushBack (tlv1);
   3.320  
   3.321 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.322 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.323      msg1->SetType (1);
   3.324      packet.MessagePushBack (msg1);
   3.325  
   3.326 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.327 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.328      msg2->SetType (2);
   3.329      msg2->SetOriginatorAddress(Ipv4Address("10.0.0.1"));
   3.330      packet.MessagePushBack (msg2);
   3.331 @@ -675,18 +674,18 @@
   3.332  	 * `------------------
   3.333     */
   3.334    {
   3.335 -    PacketBB packet;
   3.336 +    PbbPacket packet;
   3.337      packet.SetSequenceNumber (10);
   3.338  
   3.339 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.340 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.341      tlv1->SetType (1);
   3.342      packet.TlvPushBack (tlv1);
   3.343  
   3.344 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.345 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.346      msg1->SetType (1);
   3.347      packet.MessagePushBack (msg1);
   3.348  
   3.349 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.350 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.351      msg2->SetType (2);
   3.352      msg2->SetOriginatorAddress(Ipv4Address("10.0.0.1"));
   3.353      msg2->SetHopCount (1);
   3.354 @@ -734,18 +733,18 @@
   3.355  	 * `------------------
   3.356     */
   3.357    {
   3.358 -    PacketBB packet;
   3.359 +    PbbPacket packet;
   3.360      packet.SetSequenceNumber (11);
   3.361  
   3.362 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.363 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.364      tlv1->SetType (1);
   3.365      packet.TlvPushBack (tlv1);
   3.366  
   3.367 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.368 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.369      msg1->SetType (1);
   3.370      packet.MessagePushBack (msg1);
   3.371  
   3.372 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.373 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.374      msg2->SetType (2);
   3.375      msg2->SetOriginatorAddress(Ipv4Address("10.0.0.1"));
   3.376      msg2->SetHopLimit (255);
   3.377 @@ -796,18 +795,18 @@
   3.378  	 * `------------------
   3.379     */
   3.380    {
   3.381 -    PacketBB packet;
   3.382 +    PbbPacket packet;
   3.383      packet.SetSequenceNumber (12);
   3.384  
   3.385 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.386 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.387      tlv1->SetType (1);
   3.388      packet.TlvPushBack (tlv1);
   3.389  
   3.390 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.391 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.392      msg1->SetType (1);
   3.393      packet.MessagePushBack (msg1);
   3.394  
   3.395 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.396 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.397      msg2->SetType (2);
   3.398      msg2->SetOriginatorAddress(Ipv4Address("10.0.0.1"));
   3.399      msg2->SetHopLimit (255);
   3.400 @@ -859,18 +858,18 @@
   3.401  	 * `------------------
   3.402     */
   3.403    {
   3.404 -    PacketBB packet;
   3.405 +    PbbPacket packet;
   3.406      packet.SetSequenceNumber (13);
   3.407  
   3.408 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.409 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.410      tlv1->SetType (1);
   3.411      packet.TlvPushBack (tlv1);
   3.412  
   3.413 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.414 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.415      msg1->SetType (1);
   3.416      packet.MessagePushBack (msg1);
   3.417  
   3.418 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.419 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.420      msg2->SetType (2);
   3.421      msg2->SetOriginatorAddress(Ipv4Address("10.0.0.1"));
   3.422      msg2->SetHopLimit (255);
   3.423 @@ -926,23 +925,23 @@
   3.424  	 * `------------------
   3.425     */
   3.426    {
   3.427 -    PacketBB packet;
   3.428 +    PbbPacket packet;
   3.429      packet.SetSequenceNumber (14);
   3.430  
   3.431 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.432 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.433      tlv1->SetType (1);
   3.434      packet.TlvPushBack (tlv1);
   3.435  
   3.436 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.437 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.438      msg1->SetType (1);
   3.439  
   3.440 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.441 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.442      msg1tlv1->SetType (1);
   3.443      msg1->TlvPushBack (msg1tlv1);
   3.444  
   3.445      packet.MessagePushBack (msg1);
   3.446  
   3.447 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.448 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.449      msg2->SetType (2);
   3.450      msg2->SetOriginatorAddress(Ipv4Address("10.0.0.1"));
   3.451      msg2->SetHopLimit (255);
   3.452 @@ -1003,30 +1002,30 @@
   3.453  	 * `------------------
   3.454     */
   3.455    {
   3.456 -    PacketBB packet;
   3.457 +    PbbPacket packet;
   3.458      packet.SetSequenceNumber (15);
   3.459  
   3.460 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.461 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.462      tlv1->SetType (1);
   3.463      packet.TlvPushBack (tlv1);
   3.464  
   3.465 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.466 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.467      msg1->SetType (1);
   3.468  
   3.469 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.470 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.471      msg1tlv1->SetType (1);
   3.472      msg1->TlvPushBack (msg1tlv1);
   3.473  
   3.474      packet.MessagePushBack (msg1);
   3.475  
   3.476 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.477 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.478      msg2->SetType (2);
   3.479      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.480      msg2->SetHopLimit (255);
   3.481      msg2->SetHopCount (1);
   3.482      msg2->SetSequenceNumber (12345);
   3.483  
   3.484 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.485 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.486      msg2a1->AddressPushBack (Ipv4Address ("0.0.0.0"));
   3.487      msg2->AddressBlockPushBack (msg2a1);
   3.488  
   3.489 @@ -1087,30 +1086,30 @@
   3.490  	 * `------------------
   3.491     */
   3.492    {
   3.493 -    PacketBB packet;
   3.494 +    PbbPacket packet;
   3.495      packet.SetSequenceNumber (16);
   3.496  
   3.497 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.498 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.499      tlv1->SetType (1);
   3.500      packet.TlvPushBack (tlv1);
   3.501  
   3.502 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.503 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.504      msg1->SetType (1);
   3.505  
   3.506 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.507 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.508      msg1tlv1->SetType (1);
   3.509      msg1->TlvPushBack (msg1tlv1);
   3.510  
   3.511      packet.MessagePushBack (msg1);
   3.512  
   3.513 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.514 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.515      msg2->SetType (2);
   3.516      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.517      msg2->SetHopLimit (255);
   3.518      msg2->SetHopCount (1);
   3.519      msg2->SetSequenceNumber (12345);
   3.520  
   3.521 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.522 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.523      msg2a1->AddressPushBack (Ipv4Address ("255.255.255.255"));
   3.524      msg2->AddressBlockPushBack (msg2a1);
   3.525  
   3.526 @@ -1171,30 +1170,30 @@
   3.527  	 * `------------------
   3.528     */
   3.529    {
   3.530 -    PacketBB packet;
   3.531 +    PbbPacket packet;
   3.532      packet.SetSequenceNumber (17);
   3.533  
   3.534 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.535 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.536      tlv1->SetType (1);
   3.537      packet.TlvPushBack (tlv1);
   3.538  
   3.539 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.540 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.541      msg1->SetType (1);
   3.542  
   3.543 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.544 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.545      msg1tlv1->SetType (1);
   3.546      msg1->TlvPushBack (msg1tlv1);
   3.547  
   3.548      packet.MessagePushBack (msg1);
   3.549  
   3.550 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.551 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.552      msg2->SetType (2);
   3.553      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.554      msg2->SetHopLimit (255);
   3.555      msg2->SetHopCount (1);
   3.556      msg2->SetSequenceNumber (12345);
   3.557  
   3.558 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.559 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.560      msg2a1->AddressPushBack (Ipv4Address ("0.0.0.1"));
   3.561      msg2->AddressBlockPushBack (msg2a1);
   3.562  
   3.563 @@ -1255,30 +1254,30 @@
   3.564  	 * `------------------
   3.565     */
   3.566    {
   3.567 -    PacketBB packet;
   3.568 +    PbbPacket packet;
   3.569      packet.SetSequenceNumber (18);
   3.570  
   3.571 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.572 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.573      tlv1->SetType (1);
   3.574      packet.TlvPushBack (tlv1);
   3.575  
   3.576 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.577 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.578      msg1->SetType (1);
   3.579  
   3.580 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.581 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.582      msg1tlv1->SetType (1);
   3.583      msg1->TlvPushBack (msg1tlv1);
   3.584  
   3.585      packet.MessagePushBack (msg1);
   3.586  
   3.587 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.588 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.589      msg2->SetType (2);
   3.590      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.591      msg2->SetHopLimit (255);
   3.592      msg2->SetHopCount (1);
   3.593      msg2->SetSequenceNumber (12345);
   3.594  
   3.595 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.596 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.597      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.0"));
   3.598      msg2->AddressBlockPushBack (msg2a1);
   3.599  
   3.600 @@ -1339,30 +1338,30 @@
   3.601  	 * `------------------
   3.602     */
   3.603    {
   3.604 -    PacketBB packet;
   3.605 +    PbbPacket packet;
   3.606      packet.SetSequenceNumber (19);
   3.607  
   3.608 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.609 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.610      tlv1->SetType (1);
   3.611      packet.TlvPushBack (tlv1);
   3.612  
   3.613 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.614 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.615      msg1->SetType (1);
   3.616  
   3.617 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.618 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.619      msg1tlv1->SetType (1);
   3.620      msg1->TlvPushBack (msg1tlv1);
   3.621  
   3.622      packet.MessagePushBack (msg1);
   3.623  
   3.624 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.625 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.626      msg2->SetType (2);
   3.627      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.628      msg2->SetHopLimit (255);
   3.629      msg2->SetHopCount (1);
   3.630      msg2->SetSequenceNumber (12345);
   3.631  
   3.632 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.633 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.634      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.1"));
   3.635      msg2->AddressBlockPushBack (msg2a1);
   3.636  
   3.637 @@ -1424,30 +1423,30 @@
   3.638  	 * `------------------
   3.639     */
   3.640    {
   3.641 -    PacketBB packet;
   3.642 +    PbbPacket packet;
   3.643      packet.SetSequenceNumber (20);
   3.644  
   3.645 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.646 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.647      tlv1->SetType (1);
   3.648      packet.TlvPushBack (tlv1);
   3.649  
   3.650 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.651 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.652      msg1->SetType (1);
   3.653  
   3.654 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.655 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.656      msg1tlv1->SetType (1);
   3.657      msg1->TlvPushBack (msg1tlv1);
   3.658  
   3.659      packet.MessagePushBack (msg1);
   3.660  
   3.661 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.662 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.663      msg2->SetType (2);
   3.664      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.665      msg2->SetHopLimit (255);
   3.666      msg2->SetHopCount (1);
   3.667      msg2->SetSequenceNumber (12345);
   3.668  
   3.669 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.670 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.671      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.1"));
   3.672      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.673      msg2->AddressBlockPushBack (msg2a1);
   3.674 @@ -1510,30 +1509,30 @@
   3.675  	 * `------------------
   3.676     */
   3.677    {
   3.678 -    PacketBB packet;
   3.679 +    PbbPacket packet;
   3.680      packet.SetSequenceNumber (21);
   3.681  
   3.682 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.683 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.684      tlv1->SetType (1);
   3.685      packet.TlvPushBack (tlv1);
   3.686  
   3.687 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.688 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.689      msg1->SetType (1);
   3.690  
   3.691 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.692 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.693      msg1tlv1->SetType (1);
   3.694      msg1->TlvPushBack (msg1tlv1);
   3.695  
   3.696      packet.MessagePushBack (msg1);
   3.697  
   3.698 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.699 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.700      msg2->SetType (2);
   3.701      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.702      msg2->SetHopLimit (255);
   3.703      msg2->SetHopCount (1);
   3.704      msg2->SetSequenceNumber (12345);
   3.705  
   3.706 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.707 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.708      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.709      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
   3.710      msg2->AddressBlockPushBack (msg2a1);
   3.711 @@ -1602,35 +1601,35 @@
   3.712  	 * `------------------
   3.713     */
   3.714    {
   3.715 -    PacketBB packet;
   3.716 +    PbbPacket packet;
   3.717      packet.SetSequenceNumber (22);
   3.718  
   3.719 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.720 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.721      tlv1->SetType (1);
   3.722      packet.TlvPushBack (tlv1);
   3.723  
   3.724 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.725 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.726      msg1->SetType (1);
   3.727  
   3.728 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.729 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.730      msg1tlv1->SetType (1);
   3.731      msg1->TlvPushBack (msg1tlv1);
   3.732  
   3.733      packet.MessagePushBack (msg1);
   3.734  
   3.735 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.736 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.737      msg2->SetType (2);
   3.738      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.739      msg2->SetHopLimit (255);
   3.740      msg2->SetHopCount (1);
   3.741      msg2->SetSequenceNumber (12345);
   3.742  
   3.743 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.744 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.745      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.746      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
   3.747      msg2->AddressBlockPushBack (msg2a1);
   3.748  
   3.749 -    Ptr<AddressBlockIpv4> msg2a2 = Create<AddressBlockIpv4> ();
   3.750 +    Ptr<PbbAddressBlockIpv4> msg2a2 = Create<PbbAddressBlockIpv4> ();
   3.751      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
   3.752      msg2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
   3.753      msg2->AddressBlockPushBack (msg2a2);
   3.754 @@ -1702,35 +1701,35 @@
   3.755  	 * `------------------
   3.756     */
   3.757    {
   3.758 -    PacketBB packet;
   3.759 +    PbbPacket packet;
   3.760      packet.SetSequenceNumber (23);
   3.761  
   3.762 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.763 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.764      tlv1->SetType (1);
   3.765      packet.TlvPushBack (tlv1);
   3.766  
   3.767 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.768 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.769      msg1->SetType (1);
   3.770  
   3.771 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.772 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.773      msg1tlv1->SetType (1);
   3.774      msg1->TlvPushBack (msg1tlv1);
   3.775  
   3.776      packet.MessagePushBack (msg1);
   3.777  
   3.778 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.779 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.780      msg2->SetType (2);
   3.781      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.782      msg2->SetHopLimit (255);
   3.783      msg2->SetHopCount (1);
   3.784      msg2->SetSequenceNumber (12345);
   3.785  
   3.786 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.787 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.788      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.789      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
   3.790      msg2->AddressBlockPushBack (msg2a1);
   3.791  
   3.792 -    Ptr<AddressBlockIpv4> msg2a2 = Create<AddressBlockIpv4> ();
   3.793 +    Ptr<PbbAddressBlockIpv4> msg2a2 = Create<PbbAddressBlockIpv4> ();
   3.794      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
   3.795      msg2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
   3.796      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.5"));
   3.797 @@ -1818,35 +1817,35 @@
   3.798  	 * `------------------
   3.799     */
   3.800    {
   3.801 -    PacketBB packet;
   3.802 +    PbbPacket packet;
   3.803      packet.SetSequenceNumber (24);
   3.804  
   3.805 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.806 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.807      tlv1->SetType (1);
   3.808      packet.TlvPushBack (tlv1);
   3.809  
   3.810 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.811 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.812      msg1->SetType (1);
   3.813  
   3.814 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.815 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.816      msg1tlv1->SetType (1);
   3.817      msg1->TlvPushBack (msg1tlv1);
   3.818  
   3.819      packet.MessagePushBack (msg1);
   3.820  
   3.821 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.822 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.823      msg2->SetType (2);
   3.824      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.825      msg2->SetHopLimit (255);
   3.826      msg2->SetHopCount (1);
   3.827      msg2->SetSequenceNumber (12345);
   3.828  
   3.829 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.830 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.831      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.832      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
   3.833      msg2->AddressBlockPushBack (msg2a1);
   3.834  
   3.835 -    Ptr<AddressBlockIpv4> msg2a2 = Create<AddressBlockIpv4> ();
   3.836 +    Ptr<PbbAddressBlockIpv4> msg2a2 = Create<PbbAddressBlockIpv4> ();
   3.837      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
   3.838      msg2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
   3.839      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.5"));
   3.840 @@ -1857,7 +1856,7 @@
   3.841      msg2a2->PrefixPushBack (16);
   3.842      msg2a2->PrefixPushBack (24);
   3.843  
   3.844 -    Ptr<AddressTlv> msg2a2tlv1 = Create<AddressTlv> ();
   3.845 +    Ptr<PbbAddressTlv> msg2a2tlv1 = Create<PbbAddressTlv> ();
   3.846      msg2a2tlv1->SetType (1);
   3.847      msg2a2->TlvPushBack (msg2a2tlv1);
   3.848  
   3.849 @@ -1939,35 +1938,35 @@
   3.850  	 * `------------------
   3.851     */
   3.852    {
   3.853 -    PacketBB packet;
   3.854 +    PbbPacket packet;
   3.855      packet.SetSequenceNumber (25);
   3.856  
   3.857 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.858 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.859      tlv1->SetType (1);
   3.860      packet.TlvPushBack (tlv1);
   3.861  
   3.862 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.863 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.864      msg1->SetType (1);
   3.865  
   3.866 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.867 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.868      msg1tlv1->SetType (1);
   3.869      msg1->TlvPushBack (msg1tlv1);
   3.870  
   3.871      packet.MessagePushBack (msg1);
   3.872  
   3.873 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.874 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.875      msg2->SetType (2);
   3.876      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.877      msg2->SetHopLimit (255);
   3.878      msg2->SetHopCount (1);
   3.879      msg2->SetSequenceNumber (12345);
   3.880  
   3.881 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.882 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.883      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.884      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
   3.885      msg2->AddressBlockPushBack (msg2a1);
   3.886  
   3.887 -    Ptr<AddressBlockIpv4> msg2a2 = Create<AddressBlockIpv4> ();
   3.888 +    Ptr<PbbAddressBlockIpv4> msg2a2 = Create<PbbAddressBlockIpv4> ();
   3.889      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
   3.890      msg2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
   3.891      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.5"));
   3.892 @@ -1978,7 +1977,7 @@
   3.893      msg2a2->PrefixPushBack (16);
   3.894      msg2a2->PrefixPushBack (24);
   3.895  
   3.896 -    Ptr<AddressTlv> msg2a2tlv1 = Create<AddressTlv> ();
   3.897 +    Ptr<PbbAddressTlv> msg2a2tlv1 = Create<PbbAddressTlv> ();
   3.898      msg2a2tlv1->SetType (1);
   3.899      msg2a2tlv1->SetIndexStart (1);
   3.900      msg2a2->TlvPushBack (msg2a2tlv1);
   3.901 @@ -2062,35 +2061,35 @@
   3.902  	 * `------------------
   3.903     */
   3.904    {
   3.905 -    PacketBB packet;
   3.906 +    PbbPacket packet;
   3.907      packet.SetSequenceNumber (26);
   3.908  
   3.909 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.910 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.911      tlv1->SetType (1);
   3.912      packet.TlvPushBack (tlv1);
   3.913  
   3.914 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.915 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.916      msg1->SetType (1);
   3.917  
   3.918 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.919 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.920      msg1tlv1->SetType (1);
   3.921      msg1->TlvPushBack (msg1tlv1);
   3.922  
   3.923      packet.MessagePushBack (msg1);
   3.924  
   3.925 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.926 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.927      msg2->SetType (2);
   3.928      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.929      msg2->SetHopLimit (255);
   3.930      msg2->SetHopCount (1);
   3.931      msg2->SetSequenceNumber (12345);
   3.932  
   3.933 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.934 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.935      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.936      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
   3.937      msg2->AddressBlockPushBack (msg2a1);
   3.938  
   3.939 -    Ptr<AddressBlockIpv4> msg2a2 = Create<AddressBlockIpv4> ();
   3.940 +    Ptr<PbbAddressBlockIpv4> msg2a2 = Create<PbbAddressBlockIpv4> ();
   3.941      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
   3.942      msg2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
   3.943      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.5"));
   3.944 @@ -2101,7 +2100,7 @@
   3.945      msg2a2->PrefixPushBack (16);
   3.946      msg2a2->PrefixPushBack (24);
   3.947  
   3.948 -    Ptr<AddressTlv> msg2a2tlv1 = Create<AddressTlv> ();
   3.949 +    Ptr<PbbAddressTlv> msg2a2tlv1 = Create<PbbAddressTlv> ();
   3.950      msg2a2tlv1->SetType (1);
   3.951      msg2a2tlv1->SetIndexStart (1);
   3.952      msg2a2tlv1->SetIndexStop (3);
   3.953 @@ -2187,35 +2186,35 @@
   3.954  	 * `------------------
   3.955     */
   3.956    {
   3.957 -    PacketBB packet;
   3.958 +    PbbPacket packet;
   3.959      packet.SetSequenceNumber (27);
   3.960  
   3.961 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
   3.962 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
   3.963      tlv1->SetType (1);
   3.964      packet.TlvPushBack (tlv1);
   3.965  
   3.966 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
   3.967 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
   3.968      msg1->SetType (1);
   3.969  
   3.970 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
   3.971 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
   3.972      msg1tlv1->SetType (1);
   3.973      msg1->TlvPushBack (msg1tlv1);
   3.974  
   3.975      packet.MessagePushBack (msg1);
   3.976  
   3.977 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
   3.978 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
   3.979      msg2->SetType (2);
   3.980      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
   3.981      msg2->SetHopLimit (255);
   3.982      msg2->SetHopCount (1);
   3.983      msg2->SetSequenceNumber (12345);
   3.984  
   3.985 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
   3.986 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
   3.987      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
   3.988      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
   3.989      msg2->AddressBlockPushBack (msg2a1);
   3.990  
   3.991 -    Ptr<AddressBlockIpv4> msg2a2 = Create<AddressBlockIpv4> ();
   3.992 +    Ptr<PbbAddressBlockIpv4> msg2a2 = Create<PbbAddressBlockIpv4> ();
   3.993      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
   3.994      msg2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
   3.995      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.5"));
   3.996 @@ -2226,7 +2225,7 @@
   3.997      msg2a2->PrefixPushBack (16);
   3.998      msg2a2->PrefixPushBack (24);
   3.999  
  3.1000 -    Ptr<AddressTlv> msg2a2tlv1 = Create<AddressTlv> ();
  3.1001 +    Ptr<PbbAddressTlv> msg2a2tlv1 = Create<PbbAddressTlv> ();
  3.1002      msg2a2tlv1->SetType (1);
  3.1003      msg2a2tlv1->SetIndexStart (1);
  3.1004      msg2a2tlv1->SetIndexStop (3);
  3.1005 @@ -2313,115 +2312,115 @@
  3.1006  	 * |    |         Index-start = 1
  3.1007  	 * |    |         Index-stop = 3
  3.1008  	 * |    |         Type = 1; Value = 00  01  02  03
  3.1009 -	 * |    |                                          04  05  06  07
  3.1010 -	 * |    |                                          08  09  0a  0b
  3.1011 -	 * |    |                                          0c  0d  0e  0f
  3.1012 -	 * |    |                                          10  11  12  13
  3.1013 -	 * |    |                                          14  15  16  17
  3.1014 -	 * |    |                                          18  19  1a  1b
  3.1015 -	 * |    |                                          1c  1d  1e  1f
  3.1016 -	 * |    |                                          20  21  22  23
  3.1017 -	 * |    |                                          24  25  26  27
  3.1018 -	 * |    |                                          28  29  2a  2b
  3.1019 -	 * |    |                                          2c  2d  2e  2f
  3.1020 -	 * |    |                                          30  31  32  33
  3.1021 -	 * |    |                                          34  35  36  37
  3.1022 -	 * |    |                                          38  39  3a  3b
  3.1023 -	 * |    |                                          3c  3d  3e  3f
  3.1024 -	 * |    |                                          40  41  42  43
  3.1025 -	 * |    |                                          44  45  46  47
  3.1026 -	 * |    |                                          48  49  4a  4b
  3.1027 -	 * |    |                                          4c  4d  4e  4f
  3.1028 -	 * |    |                                          50  51  52  53
  3.1029 -	 * |    |                                          54  55  56  57
  3.1030 -	 * |    |                                          58  59  5a  5b
  3.1031 -	 * |    |                                          5c  5d  5e  5f
  3.1032 -	 * |    |                                          60  61  62  63
  3.1033 -	 * |    |                                          64  65  66  67
  3.1034 -	 * |    |                                          68  69  6a  6b
  3.1035 -	 * |    |                                          6c  6d  6e  6f
  3.1036 -	 * |    |                                          70  71  72  73
  3.1037 -	 * |    |                                          74  75  76  77
  3.1038 -	 * |    |                                          78  79  7a  7b
  3.1039 -	 * |    |                                          7c  7d  7e  7f
  3.1040 -	 * |    |                                          80  81  82  83
  3.1041 -	 * |    |                                          84  85  86  87
  3.1042 -	 * |    |                                          88  89  8a  8b
  3.1043 -	 * |    |                                          8c  8d  8e  8f
  3.1044 -	 * |    |                                          90  91  92  93
  3.1045 -	 * |    |                                          94  95  96  97
  3.1046 -	 * |    |                                          98  99  9a  9b
  3.1047 -	 * |    |                                          9c  9d  9e  9f
  3.1048 -	 * |    |                                          a0  a1  a2  a3
  3.1049 -	 * |    |                                          a4  a5  a6  a7
  3.1050 -	 * |    |                                          a8  a9  aa  ab
  3.1051 -	 * |    |                                          ac  ad  ae  af
  3.1052 -	 * |    |                                          b0  b1  b2  b3
  3.1053 -	 * |    |                                          b4  b5  b6  b7
  3.1054 -	 * |    |                                          b8  b9  ba  bb
  3.1055 -	 * |    |                                          bc  bd  be  bf
  3.1056 -	 * |    |                                          c0  c1  c2  c3
  3.1057 -	 * |    |                                          c4  c5  c6  c7
  3.1058 -	 * |    |                                          c8  c9  ca  cb
  3.1059 -	 * |    |                                          cc  cd  ce  cf
  3.1060 -	 * |    |                                          d0  d1  d2  d3
  3.1061 -	 * |    |                                          d4  d5  d6  d7
  3.1062 -	 * |    |                                          d8  d9  da  db
  3.1063 -	 * |    |                                          dc  dd  de  df
  3.1064 -	 * |    |                                          e0  e1  e2  e3
  3.1065 -	 * |    |                                          e4  e5  e6  e7
  3.1066 -	 * |    |                                          e8  e9  ea  eb
  3.1067 -	 * |    |                                          ec  ed  ee  ef
  3.1068 -	 * |    |                                          f0  f1  f2  f3
  3.1069 -	 * |    |                                          f4  f5  f6  f7
  3.1070 -	 * |    |                                          f8  f9  fa  fb
  3.1071 -	 * |    |                                          fc  fd  fe  00
  3.1072 -	 * |    |                                          01  02  03  04
  3.1073 -	 * |    |                                          05  06  07  08
  3.1074 -	 * |    |                                          09  0a  0b  0c
  3.1075 -	 * |    |                                          0d  0e  0f  10
  3.1076 -	 * |    |                                          11  12  13  14
  3.1077 -	 * |    |                                          15  16  17  18
  3.1078 -	 * |    |                                          19  1a  1b  1c
  3.1079 -	 * |    |                                          1d  1e  1f  20
  3.1080 -	 * |    |                                          21  22  23  24
  3.1081 -	 * |    |                                          25  26  27  28
  3.1082 -	 * |    |                                          29  2a  2b  2c
  3.1083 +	 * |    |                           04  05  06  07
  3.1084 +	 * |    |                           08  09  0a  0b
  3.1085 +	 * |    |                           0c  0d  0e  0f
  3.1086 +	 * |    |                           10  11  12  13
  3.1087 +	 * |    |                           14  15  16  17
  3.1088 +	 * |    |                           18  19  1a  1b
  3.1089 +	 * |    |                           1c  1d  1e  1f
  3.1090 +	 * |    |                           20  21  22  23
  3.1091 +	 * |    |                           24  25  26  27
  3.1092 +	 * |    |                           28  29  2a  2b
  3.1093 +	 * |    |                           2c  2d  2e  2f
  3.1094 +	 * |    |                           30  31  32  33
  3.1095 +	 * |    |                           34  35  36  37
  3.1096 +	 * |    |                           38  39  3a  3b
  3.1097 +	 * |    |                           3c  3d  3e  3f
  3.1098 +	 * |    |                           40  41  42  43
  3.1099 +	 * |    |                           44  45  46  47
  3.1100 +	 * |    |                           48  49  4a  4b
  3.1101 +	 * |    |                           4c  4d  4e  4f
  3.1102 +	 * |    |                           50  51  52  53
  3.1103 +	 * |    |                           54  55  56  57
  3.1104 +	 * |    |                           58  59  5a  5b
  3.1105 +	 * |    |                           5c  5d  5e  5f
  3.1106 +	 * |    |                           60  61  62  63
  3.1107 +	 * |    |                           64  65  66  67
  3.1108 +	 * |    |                           68  69  6a  6b
  3.1109 +	 * |    |                           6c  6d  6e  6f
  3.1110 +	 * |    |                           70  71  72  73
  3.1111 +	 * |    |                           74  75  76  77
  3.1112 +	 * |    |                           78  79  7a  7b
  3.1113 +	 * |    |                           7c  7d  7e  7f
  3.1114 +	 * |    |                           80  81  82  83
  3.1115 +	 * |    |                           84  85  86  87
  3.1116 +	 * |    |                           88  89  8a  8b
  3.1117 +	 * |    |                           8c  8d  8e  8f
  3.1118 +	 * |    |                           90  91  92  93
  3.1119 +	 * |    |                           94  95  96  97
  3.1120 +	 * |    |                           98  99  9a  9b
  3.1121 +	 * |    |                           9c  9d  9e  9f
  3.1122 +	 * |    |                           a0  a1  a2  a3
  3.1123 +	 * |    |                           a4  a5  a6  a7
  3.1124 +	 * |    |                           a8  a9  aa  ab
  3.1125 +	 * |    |                           ac  ad  ae  af
  3.1126 +	 * |    |                           b0  b1  b2  b3
  3.1127 +	 * |    |                           b4  b5  b6  b7
  3.1128 +	 * |    |                           b8  b9  ba  bb
  3.1129 +	 * |    |                           bc  bd  be  bf
  3.1130 +	 * |    |                           c0  c1  c2  c3
  3.1131 +	 * |    |                           c4  c5  c6  c7
  3.1132 +	 * |    |                           c8  c9  ca  cb
  3.1133 +	 * |    |                           cc  cd  ce  cf
  3.1134 +	 * |    |                           d0  d1  d2  d3
  3.1135 +	 * |    |                           d4  d5  d6  d7
  3.1136 +	 * |    |                           d8  d9  da  db
  3.1137 +	 * |    |                           dc  dd  de  df
  3.1138 +	 * |    |                           e0  e1  e2  e3
  3.1139 +	 * |    |                           e4  e5  e6  e7
  3.1140 +	 * |    |                           e8  e9  ea  eb
  3.1141 +	 * |    |                           ec  ed  ee  ef
  3.1142 +	 * |    |                           f0  f1  f2  f3
  3.1143 +	 * |    |                           f4  f5  f6  f7
  3.1144 +	 * |    |                           f8  f9  fa  fb
  3.1145 +	 * |    |                           fc  fd  fe  00
  3.1146 +	 * |    |                           01  02  03  04
  3.1147 +	 * |    |                           05  06  07  08
  3.1148 +	 * |    |                           09  0a  0b  0c
  3.1149 +	 * |    |                           0d  0e  0f  10
  3.1150 +	 * |    |                           11  12  13  14
  3.1151 +	 * |    |                           15  16  17  18
  3.1152 +	 * |    |                           19  1a  1b  1c
  3.1153 +	 * |    |                           1d  1e  1f  20
  3.1154 +	 * |    |                           21  22  23  24
  3.1155 +	 * |    |                           25  26  27  28
  3.1156 +	 * |    |                           29  2a  2b  2c
  3.1157  	 * |    |                                          
  3.1158  	 * |    `-------------------
  3.1159  	 * |
  3.1160  	 * `------------------
  3.1161     */
  3.1162    {
  3.1163 -    PacketBB packet;
  3.1164 +    PbbPacket packet;
  3.1165      packet.SetSequenceNumber (28);
  3.1166  
  3.1167 -    Ptr<Tlv> tlv1 = Create<Tlv> ();
  3.1168 +    Ptr<PbbTlv> tlv1 = Create<PbbTlv> ();
  3.1169      tlv1->SetType (1);
  3.1170      packet.TlvPushBack (tlv1);
  3.1171  
  3.1172 -    Ptr<MessageIpv4> msg1 = Create<MessageIpv4> ();
  3.1173 +    Ptr<PbbMessageIpv4> msg1 = Create<PbbMessageIpv4> ();
  3.1174      msg1->SetType (1);
  3.1175  
  3.1176 -    Ptr<Tlv> msg1tlv1 = Create<Tlv> ();
  3.1177 +    Ptr<PbbTlv> msg1tlv1 = Create<PbbTlv> ();
  3.1178      msg1tlv1->SetType (1);
  3.1179      msg1->TlvPushBack (msg1tlv1);
  3.1180  
  3.1181      packet.MessagePushBack (msg1);
  3.1182  
  3.1183 -    Ptr<MessageIpv4> msg2 = Create<MessageIpv4> ();
  3.1184 +    Ptr<PbbMessageIpv4> msg2 = Create<PbbMessageIpv4> ();
  3.1185      msg2->SetType (2);
  3.1186      msg2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
  3.1187      msg2->SetHopLimit (255);
  3.1188      msg2->SetHopCount (1);
  3.1189      msg2->SetSequenceNumber (12345);
  3.1190  
  3.1191 -    Ptr<AddressBlockIpv4> msg2a1 = Create<AddressBlockIpv4> ();
  3.1192 +    Ptr<PbbAddressBlockIpv4> msg2a1 = Create<PbbAddressBlockIpv4> ();
  3.1193      msg2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
  3.1194      msg2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
  3.1195      msg2->AddressBlockPushBack (msg2a1);
  3.1196  
  3.1197 -    Ptr<AddressBlockIpv4> msg2a2 = Create<AddressBlockIpv4> ();
  3.1198 +    Ptr<PbbAddressBlockIpv4> msg2a2 = Create<PbbAddressBlockIpv4> ();
  3.1199      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
  3.1200      msg2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
  3.1201      msg2a2->AddressPushBack (Ipv4Address ("10.0.0.5"));
  3.1202 @@ -2432,7 +2431,7 @@
  3.1203      msg2a2->PrefixPushBack (16);
  3.1204      msg2a2->PrefixPushBack (24);
  3.1205  
  3.1206 -    Ptr<AddressTlv> msg2a2tlv1 = Create<AddressTlv> ();
  3.1207 +    Ptr<PbbAddressTlv> msg2a2tlv1 = Create<PbbAddressTlv> ();
  3.1208      msg2a2tlv1->SetType (1);
  3.1209      msg2a2tlv1->SetIndexStart (1);
  3.1210      msg2a2tlv1->SetIndexStop (3);
  3.1211 @@ -2636,9 +2635,9 @@
  3.1212  	 * `------------------
  3.1213     */
  3.1214    {
  3.1215 -    PacketBB packet;
  3.1216 -
  3.1217 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1218 +    PbbPacket packet;
  3.1219 +
  3.1220 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1221      m1->SetType(1);
  3.1222  
  3.1223      packet.MessagePushBack (m1);
  3.1224 @@ -2667,9 +2666,9 @@
  3.1225  	 * `------------------
  3.1226     */
  3.1227    {
  3.1228 -    PacketBB packet;
  3.1229 -
  3.1230 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1231 +    PbbPacket packet;
  3.1232 +
  3.1233 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1234      m1->SetType(1);
  3.1235      m1->SetOriginatorAddress (Ipv6Address("abcd::1"));
  3.1236  
  3.1237 @@ -2707,13 +2706,13 @@
  3.1238  	 * `------------------
  3.1239     */
  3.1240    {
  3.1241 -    PacketBB packet;
  3.1242 -
  3.1243 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1244 +    PbbPacket packet;
  3.1245 +
  3.1246 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1247      m1->SetType(1);
  3.1248      m1->SetOriginatorAddress (Ipv6Address("abcd::1"));
  3.1249  
  3.1250 -    Ptr<AddressBlockIpv6> m1a1 = Create<AddressBlockIpv6> ();
  3.1251 +    Ptr<PbbAddressBlockIpv6> m1a1 = Create<PbbAddressBlockIpv6> ();
  3.1252      m1a1->AddressPushBack (Ipv6Address ("10::1"));
  3.1253      m1->AddressBlockPushBack (m1a1);
  3.1254  
  3.1255 @@ -2757,13 +2756,13 @@
  3.1256  	 * `------------------
  3.1257     */
  3.1258    {
  3.1259 -    PacketBB packet;
  3.1260 -
  3.1261 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1262 +    PbbPacket packet;
  3.1263 +
  3.1264 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1265      m1->SetType(1);
  3.1266      m1->SetOriginatorAddress (Ipv6Address("abcd::1"));
  3.1267  
  3.1268 -    Ptr<AddressBlockIpv6> m1a1 = Create<AddressBlockIpv6> ();
  3.1269 +    Ptr<PbbAddressBlockIpv6> m1a1 = Create<PbbAddressBlockIpv6> ();
  3.1270      m1a1->AddressPushBack (Ipv6Address ("10::1"));
  3.1271      m1a1->AddressPushBack (Ipv6Address ("10::2"));
  3.1272      m1->AddressBlockPushBack (m1a1);
  3.1273 @@ -2809,13 +2808,13 @@
  3.1274  	 * `------------------
  3.1275     */
  3.1276    {
  3.1277 -    PacketBB packet;
  3.1278 -
  3.1279 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1280 +    PbbPacket packet;
  3.1281 +
  3.1282 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1283      m1->SetType(1);
  3.1284      m1->SetOriginatorAddress (Ipv6Address("abcd::1"));
  3.1285  
  3.1286 -    Ptr<AddressBlockIpv6> m1a1 = Create<AddressBlockIpv6> ();
  3.1287 +    Ptr<PbbAddressBlockIpv6> m1a1 = Create<PbbAddressBlockIpv6> ();
  3.1288      m1a1->AddressPushBack (Ipv6Address ("10::2"));
  3.1289      m1a1->AddressPushBack (Ipv6Address ("10::11:2"));
  3.1290      m1->AddressBlockPushBack (m1a1);
  3.1291 @@ -2866,18 +2865,18 @@
  3.1292  	 * `------------------
  3.1293     */
  3.1294    {
  3.1295 -    PacketBB packet;
  3.1296 -
  3.1297 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1298 +    PbbPacket packet;
  3.1299 +
  3.1300 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1301      m1->SetType(1);
  3.1302      m1->SetOriginatorAddress (Ipv6Address("abcd::1"));
  3.1303  
  3.1304 -    Ptr<AddressBlockIpv6> m1a1 = Create<AddressBlockIpv6> ();
  3.1305 +    Ptr<PbbAddressBlockIpv6> m1a1 = Create<PbbAddressBlockIpv6> ();
  3.1306      m1a1->AddressPushBack (Ipv6Address ("10::2"));
  3.1307      m1a1->AddressPushBack (Ipv6Address ("10::11:2"));
  3.1308      m1->AddressBlockPushBack (m1a1);
  3.1309  
  3.1310 -    Ptr<AddressBlockIpv6> m1a2 = Create<AddressBlockIpv6> ();
  3.1311 +    Ptr<PbbAddressBlockIpv6> m1a2 = Create<PbbAddressBlockIpv6> ();
  3.1312      m1a2->AddressPushBack (Ipv6Address ("10::"));
  3.1313      m1a2->AddressPushBack (Ipv6Address ("11::"));
  3.1314      m1->AddressBlockPushBack (m1a2);
  3.1315 @@ -2932,18 +2931,18 @@
  3.1316  	 * `------------------
  3.1317     */
  3.1318    {
  3.1319 -    PacketBB packet;
  3.1320 -
  3.1321 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1322 +    PbbPacket packet;
  3.1323 +
  3.1324 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1325      m1->SetType(1);
  3.1326      m1->SetOriginatorAddress (Ipv6Address("abcd::1"));
  3.1327  
  3.1328 -    Ptr<AddressBlockIpv6> m1a1 = Create<AddressBlockIpv6> ();
  3.1329 +    Ptr<PbbAddressBlockIpv6> m1a1 = Create<PbbAddressBlockIpv6> ();
  3.1330      m1a1->AddressPushBack (Ipv6Address ("10::2"));
  3.1331      m1a1->AddressPushBack (Ipv6Address ("10::11:2"));
  3.1332      m1->AddressBlockPushBack (m1a1);
  3.1333  
  3.1334 -    Ptr<AddressBlockIpv6> m1a2 = Create<AddressBlockIpv6> ();
  3.1335 +    Ptr<PbbAddressBlockIpv6> m1a2 = Create<PbbAddressBlockIpv6> ();
  3.1336      m1a2->AddressPushBack (Ipv6Address ("10::"));
  3.1337      m1a2->AddressPushBack (Ipv6Address ("11::"));
  3.1338      m1a2->AddressPushBack (Ipv6Address ("10::5"));
  3.1339 @@ -3038,80 +3037,80 @@
  3.1340  	 * |    |         Index-start = 1
  3.1341  	 * |    |         Index-stop = 3
  3.1342  	 * |    |         Type = 1; Value = 00  01  02  03
  3.1343 -	 * |    |                                          04  05  06  07
  3.1344 -	 * |    |                                          08  09  0a  0b
  3.1345 -	 * |    |                                          0c  0d  0e  0f
  3.1346 -	 * |    |                                          10  11  12  13
  3.1347 -	 * |    |                                          14  15  16  17
  3.1348 -	 * |    |                                          18  19  1a  1b
  3.1349 -	 * |    |                                          1c  1d  1e  1f
  3.1350 -	 * |    |                                          20  21  22  23
  3.1351 -	 * |    |                                          24  25  26  27
  3.1352 -	 * |    |                                          28  29  2a  2b
  3.1353 -	 * |    |                                          2c  2d  2e  2f
  3.1354 -	 * |    |                                          30  31  32  33
  3.1355 -	 * |    |                                          34  35  36  37
  3.1356 -	 * |    |                                          38  39  3a  3b
  3.1357 -	 * |    |                                          3c  3d  3e  3f
  3.1358 -	 * |    |                                          40  41  42  43
  3.1359 -	 * |    |                                          44  45  46  47
  3.1360 -	 * |    |                                          48  49  4a  4b
  3.1361 -	 * |    |                                          4c  4d  4e  4f
  3.1362 -	 * |    |                                          50  51  52  53
  3.1363 -	 * |    |                                          54  55  56  57
  3.1364 -	 * |    |                                          58  59  5a  5b
  3.1365 -	 * |    |                                          5c  5d  5e  5f
  3.1366 -	 * |    |                                          60  61  62  63
  3.1367 -	 * |    |                                          64  65  66  67
  3.1368 -	 * |    |                                          68  69  6a  6b
  3.1369 -	 * |    |                                          6c  6d  6e  6f
  3.1370 -	 * |    |                                          70  71  72  73
  3.1371 -	 * |    |                                          74  75  76  77
  3.1372 -	 * |    |                                          78  79  7a  7b
  3.1373 -	 * |    |                                          7c  7d  7e  7f
  3.1374 -	 * |    |                                          80  81  82  83
  3.1375 -	 * |    |                                          84  85  86  87
  3.1376 -	 * |    |                                          88  89  8a  8b
  3.1377 -	 * |    |                                          8c  8d  8e  8f
  3.1378 -	 * |    |                                          90  91  92  93
  3.1379 -	 * |    |                                          94  95  96  97
  3.1380 -	 * |    |                                          98  99  9a  9b
  3.1381 -	 * |    |                                          9c  9d  9e  9f
  3.1382 -	 * |    |                                          a0  a1  a2  a3
  3.1383 -	 * |    |                                          a4  a5  a6  a7
  3.1384 -	 * |    |                                          a8  a9  aa  ab
  3.1385 -	 * |    |                                          ac  ad  ae  af
  3.1386 -	 * |    |                                          b0  b1  b2  b3
  3.1387 -	 * |    |                                          b4  b5  b6  b7
  3.1388 -	 * |    |                                          b8  b9  ba  bb
  3.1389 -	 * |    |                                          bc  bd  be  bf
  3.1390 -	 * |    |                                          c0  c1  c2  c3
  3.1391 -	 * |    |                                          c4  c5  c6  c7
  3.1392 -	 * |    |                                          c8  c9  ca  cb
  3.1393 -	 * |    |                                          cc  cd  ce  cf
  3.1394 -	 * |    |                                          d0  d1  d2  d3
  3.1395 -	 * |    |                                          d4  d5  d6  d7
  3.1396 -	 * |    |                                          d8  d9  da  db
  3.1397 -	 * |    |                                          dc  dd  de  df
  3.1398 -	 * |    |                                          e0  e1  e2  e3
  3.1399 -	 * |    |                                          e4  e5  e6  e7
  3.1400 -	 * |    |                                          e8  e9  ea  eb
  3.1401 -	 * |    |                                          ec  ed  ee  ef
  3.1402 -	 * |    |                                          f0  f1  f2  f3
  3.1403 -	 * |    |                                          f4  f5  f6  f7
  3.1404 -	 * |    |                                          f8  f9  fa  fb
  3.1405 -	 * |    |                                          fc  fd  fe  00
  3.1406 -	 * |    |                                          01  02  03  04
  3.1407 -	 * |    |                                          05  06  07  08
  3.1408 -	 * |    |                                          09  0a  0b  0c
  3.1409 -	 * |    |                                          0d  0e  0f  10
  3.1410 -	 * |    |                                          11  12  13  14
  3.1411 -	 * |    |                                          15  16  17  18
  3.1412 -	 * |    |                                          19  1a  1b  1c
  3.1413 -	 * |    |                                          1d  1e  1f  20
  3.1414 -	 * |    |                                          21  22  23  24
  3.1415 -	 * |    |                                          25  26  27  28
  3.1416 -	 * |    |                                          29  2a  2b  2c
  3.1417 +	 * |    |                           04  05  06  07
  3.1418 +	 * |    |                           08  09  0a  0b
  3.1419 +	 * |    |                           0c  0d  0e  0f
  3.1420 +	 * |    |                           10  11  12  13
  3.1421 +	 * |    |                           14  15  16  17
  3.1422 +	 * |    |                           18  19  1a  1b
  3.1423 +	 * |    |                           1c  1d  1e  1f
  3.1424 +	 * |    |                           20  21  22  23
  3.1425 +	 * |    |                           24  25  26  27
  3.1426 +	 * |    |                           28  29  2a  2b
  3.1427 +	 * |    |                           2c  2d  2e  2f
  3.1428 +	 * |    |                           30  31  32  33
  3.1429 +	 * |    |                           34  35  36  37
  3.1430 +	 * |    |                           38  39  3a  3b
  3.1431 +	 * |    |                           3c  3d  3e  3f
  3.1432 +	 * |    |                           40  41  42  43
  3.1433 +	 * |    |                           44  45  46  47
  3.1434 +	 * |    |                           48  49  4a  4b
  3.1435 +	 * |    |                           4c  4d  4e  4f
  3.1436 +	 * |    |                           50  51  52  53
  3.1437 +	 * |    |                           54  55  56  57
  3.1438 +	 * |    |                           58  59  5a  5b
  3.1439 +	 * |    |                           5c  5d  5e  5f
  3.1440 +	 * |    |                           60  61  62  63
  3.1441 +	 * |    |                           64  65  66  67
  3.1442 +	 * |    |                           68  69  6a  6b
  3.1443 +	 * |    |                           6c  6d  6e  6f
  3.1444 +	 * |    |                           70  71  72  73
  3.1445 +	 * |    |                           74  75  76  77
  3.1446 +	 * |    |                           78  79  7a  7b
  3.1447 +	 * |    |                           7c  7d  7e  7f
  3.1448 +	 * |    |                           80  81  82  83
  3.1449 +	 * |    |                           84  85  86  87
  3.1450 +	 * |    |                           88  89  8a  8b
  3.1451 +	 * |    |                           8c  8d  8e  8f
  3.1452 +	 * |    |                           90  91  92  93
  3.1453 +	 * |    |                           94  95  96  97
  3.1454 +	 * |    |                           98  99  9a  9b
  3.1455 +	 * |    |                           9c  9d  9e  9f
  3.1456 +	 * |    |                           a0  a1  a2  a3
  3.1457 +	 * |    |                           a4  a5  a6  a7
  3.1458 +	 * |    |                           a8  a9  aa  ab
  3.1459 +	 * |    |                           ac  ad  ae  af
  3.1460 +	 * |    |                           b0  b1  b2  b3
  3.1461 +	 * |    |                           b4  b5  b6  b7
  3.1462 +	 * |    |                           b8  b9  ba  bb
  3.1463 +	 * |    |                           bc  bd  be  bf
  3.1464 +	 * |    |                           c0  c1  c2  c3
  3.1465 +	 * |    |                           c4  c5  c6  c7
  3.1466 +	 * |    |                           c8  c9  ca  cb
  3.1467 +	 * |    |                           cc  cd  ce  cf
  3.1468 +	 * |    |                           d0  d1  d2  d3
  3.1469 +	 * |    |                           d4  d5  d6  d7
  3.1470 +	 * |    |                           d8  d9  da  db
  3.1471 +	 * |    |                           dc  dd  de  df
  3.1472 +	 * |    |                           e0  e1  e2  e3
  3.1473 +	 * |    |                           e4  e5  e6  e7
  3.1474 +	 * |    |                           e8  e9  ea  eb
  3.1475 +	 * |    |                           ec  ed  ee  ef
  3.1476 +	 * |    |                           f0  f1  f2  f3
  3.1477 +	 * |    |                           f4  f5  f6  f7
  3.1478 +	 * |    |                           f8  f9  fa  fb
  3.1479 +	 * |    |                           fc  fd  fe  00
  3.1480 +	 * |    |                           01  02  03  04
  3.1481 +	 * |    |                           05  06  07  08
  3.1482 +	 * |    |                           09  0a  0b  0c
  3.1483 +	 * |    |                           0d  0e  0f  10
  3.1484 +	 * |    |                           11  12  13  14
  3.1485 +	 * |    |                           15  16  17  18
  3.1486 +	 * |    |                           19  1a  1b  1c
  3.1487 +	 * |    |                           1d  1e  1f  20
  3.1488 +	 * |    |                           21  22  23  24
  3.1489 +	 * |    |                           25  26  27  28
  3.1490 +	 * |    |                           29  2a  2b  2c
  3.1491  	 * |    |                                          
  3.1492  	 * |    `-------------------
  3.1493  	 * |
  3.1494 @@ -3138,34 +3137,34 @@
  3.1495  	 * `------------------
  3.1496     */
  3.1497    {
  3.1498 -    PacketBB packet;
  3.1499 +    PbbPacket packet;
  3.1500      packet.SetSequenceNumber (29);
  3.1501  
  3.1502 -    Ptr<Tlv> ptlv1 = Create<Tlv> ();
  3.1503 +    Ptr<PbbTlv> ptlv1 = Create<PbbTlv> ();
  3.1504      ptlv1->SetType (1);
  3.1505      packet.TlvPushBack (ptlv1);
  3.1506  
  3.1507 -    Ptr<MessageIpv6> m1 = Create<MessageIpv6> ();
  3.1508 +    Ptr<PbbMessageIpv6> m1 = Create<PbbMessageIpv6> ();
  3.1509      m1->SetType (1);
  3.1510  
  3.1511 -    Ptr<Tlv> m1tlv1 = Create<Tlv> ();
  3.1512 +    Ptr<PbbTlv> m1tlv1 = Create<PbbTlv> ();
  3.1513      m1tlv1->SetType (1);
  3.1514      m1->TlvPushBack (m1tlv1);
  3.1515      packet.MessagePushBack (m1);
  3.1516  
  3.1517 -    Ptr<MessageIpv4> m2 = Create<MessageIpv4> ();
  3.1518 +    Ptr<PbbMessageIpv4> m2 = Create<PbbMessageIpv4> ();
  3.1519      m2->SetType (2);
  3.1520      m2->SetOriginatorAddress (Ipv4Address ("10.0.0.1"));
  3.1521      m2->SetHopLimit (255);
  3.1522      m2->SetHopCount (1);
  3.1523      m2->SetSequenceNumber (12345);
  3.1524  
  3.1525 -    Ptr<AddressBlockIpv4> m2a1 = Create<AddressBlockIpv4> ();
  3.1526 +    Ptr<PbbAddressBlockIpv4> m2a1 = Create<PbbAddressBlockIpv4> ();
  3.1527      m2a1->AddressPushBack (Ipv4Address ("10.0.0.2"));
  3.1528      m2a1->AddressPushBack (Ipv4Address ("10.1.1.2"));
  3.1529      m2->AddressBlockPushBack (m2a1);
  3.1530  
  3.1531 -    Ptr<AddressBlockIpv4> m2a2 = Create<AddressBlockIpv4> ();
  3.1532 +    Ptr<PbbAddressBlockIpv4> m2a2 = Create<PbbAddressBlockIpv4> ();
  3.1533      m2a2->AddressPushBack (Ipv4Address ("10.0.0.0"));
  3.1534      m2a2->AddressPushBack (Ipv4Address ("11.0.0.0"));
  3.1535      m2a2->AddressPushBack (Ipv4Address ("10.0.0.5"));
  3.1536 @@ -3175,7 +3174,7 @@
  3.1537      m2a2->PrefixPushBack (16);
  3.1538      m2a2->PrefixPushBack (24);
  3.1539  
  3.1540 -    Ptr<AddressTlv> m2a2tlv1 = Create<AddressTlv> ();
  3.1541 +    Ptr<PbbAddressTlv> m2a2tlv1 = Create<PbbAddressTlv> ();
  3.1542      m2a2tlv1->SetType (1);
  3.1543      m2a2tlv1->SetIndexStart (1);
  3.1544      m2a2tlv1->SetIndexStop (3);
  3.1545 @@ -3263,16 +3262,16 @@
  3.1546      m2->AddressBlockPushBack (m2a2);
  3.1547      packet.MessagePushBack (m2);
  3.1548  
  3.1549 -    Ptr<MessageIpv6> m3 = Create<MessageIpv6> ();
  3.1550 +    Ptr<PbbMessageIpv6> m3 = Create<PbbMessageIpv6> ();
  3.1551      m3->SetType (1);
  3.1552      m3->SetOriginatorAddress (Ipv6Address ("abcd::1"));
  3.1553  
  3.1554 -    Ptr<AddressBlockIpv6> m3a1 = Create<AddressBlockIpv6> ();
  3.1555 +    Ptr<PbbAddressBlockIpv6> m3a1 = Create<PbbAddressBlockIpv6> ();
  3.1556      m3a1->AddressPushBack (Ipv6Address ("10::2"));
  3.1557      m3a1->AddressPushBack (Ipv6Address ("10::11:2"));
  3.1558      m3->AddressBlockPushBack (m3a1);
  3.1559  
  3.1560 -    Ptr<AddressBlockIpv6> m3a2 = Create<AddressBlockIpv6> ();
  3.1561 +    Ptr<PbbAddressBlockIpv6> m3a2 = Create<PbbAddressBlockIpv6> ();
  3.1562      m3a2->AddressPushBack (Ipv6Address ("10::"));
  3.1563      m3a2->AddressPushBack (Ipv6Address ("11::"));
  3.1564      m3a2->AddressPushBack (Ipv6Address ("10::5"));
  3.1565 @@ -3460,80 +3459,80 @@
  3.1566  	 * |    |         Index-start = 1
  3.1567  	 * |    |         Index-stop = 3
  3.1568  	 * |    |         Type = 1; Value = 00  01  02  03
  3.1569 -	 * |    |                                          04  05  06  07
  3.1570 -	 * |    |                                          08  09  0a  0b
  3.1571 -	 * |    |                                          0c  0d  0e  0f
  3.1572 -	 * |    |                                          10  11  12  13
  3.1573 -	 * |    |                                          14  15  16  17
  3.1574 -	 * |    |                                          18  19  1a  1b
  3.1575 -	 * |    |                                          1c  1d  1e  1f
  3.1576 -	 * |    |                                          20  21  22  23
  3.1577 -	 * |    |                                          24  25  26  27
  3.1578 -	 * |    |                                          28  29  2a  2b
  3.1579 -	 * |    |                                          2c  2d  2e  2f
  3.1580 -	 * |    |                                          30  31  32  33
  3.1581 -	 * |    |                                          34  35  36  37
  3.1582 -	 * |    |                                          38  39  3a  3b
  3.1583 -	 * |    |                                          3c  3d  3e  3f
  3.1584 -	 * |    |                                          40  41  42  43
  3.1585 -	 * |    |                                          44  45  46  47
  3.1586 -	 * |    |                                          48  49  4a  4b
  3.1587 -	 * |    |                                          4c  4d  4e  4f
  3.1588 -	 * |    |                                          50  51  52  53
  3.1589 -	 * |    |                                          54  55  56  57
  3.1590 -	 * |    |                                          58  59  5a  5b
  3.1591 -	 * |    |                                          5c  5d  5e  5f
  3.1592 -	 * |    |                                          60  61  62  63
  3.1593 -	 * |    |                                          64  65  66  67
  3.1594 -	 * |    |                                          68  69  6a  6b
  3.1595 -	 * |    |                                          6c  6d  6e  6f
  3.1596 -	 * |    |                                          70  71  72  73
  3.1597 -	 * |    |                                          74  75  76  77
  3.1598 -	 * |    |                                          78  79  7a  7b
  3.1599 -	 * |    |                                          7c  7d  7e  7f
  3.1600 -	 * |    |                                          80  81  82  83
  3.1601 -	 * |    |                                          84  85  86  87
  3.1602 -	 * |    |                                          88  89  8a  8b
  3.1603 -	 * |    |                                          8c  8d  8e  8f
  3.1604 -	 * |    |                                          90  91  92  93
  3.1605 -	 * |    |                                          94  95  96  97
  3.1606 -	 * |    |                                          98  99  9a  9b
  3.1607 -	 * |    |                                          9c  9d  9e  9f
  3.1608 -	 * |    |                                          a0  a1  a2  a3
  3.1609 -	 * |    |                                          a4  a5  a6  a7
  3.1610 -	 * |    |                                          a8  a9  aa  ab
  3.1611 -	 * |    |                                          ac  ad  ae  af
  3.1612 -	 * |    |                                          b0  b1  b2  b3
  3.1613 -	 * |    |                                          b4  b5  b6  b7
  3.1614 -	 * |    |                                          b8  b9  ba  bb
  3.1615 -	 * |    |                                          bc  bd  be  bf
  3.1616 -	 * |    |                                          c0  c1  c2  c3
  3.1617 -	 * |    |                                          c4  c5  c6  c7
  3.1618 -	 * |    |                                          c8  c9  ca  cb
  3.1619 -	 * |    |                                          cc  cd  ce  cf
  3.1620 -	 * |    |                                          d0  d1  d2  d3
  3.1621 -	 * |    |                                          d4  d5  d6  d7
  3.1622 -	 * |    |                                          d8  d9  da  db
  3.1623 -	 * |    |                                          dc  dd  de  df
  3.1624 -	 * |    |                                          e0  e1  e2  e3
  3.1625 -	 * |    |                                          e4  e5  e6  e7
  3.1626 -	 * |    |                                          e8  e9  ea  eb
  3.1627 -	 * |    |                                          ec  ed  ee  ef
  3.1628 -	 * |    |                                          f0  f1  f2  f3
  3.1629 -	 * |    |                                          f4  f5  f6  f7
  3.1630 -	 * |    |                                          f8  f9  fa  fb
  3.1631 -	 * |    |                                          fc  fd  fe  00
  3.1632 -	 * |    |                                          01  02  03  04
  3.1633 -	 * |    |                                          05  06  07  08
  3.1634 -	 * |    |                                          09  0a  0b  0c
  3.1635 -	 * |    |                                          0d  0e  0f  10
  3.1636 -	 * |    |                                          11  12  13  14
  3.1637 -	 * |    |                                          15  16  17  18
  3.1638 -	 * |    |                                          19  1a  1b  1c
  3.1639 -	 * |    |                                          1d  1e  1f  20
  3.1640 -	 * |    |                                          21  22  23  24
  3.1641 -	 * |    |                                          25  26  27  28
  3.1642 -	 * |    |                                          29  2a  2b  2c
  3.1643 +	 * |    |                           04  05  06  07
  3.1644 +	 * |    |                           08  09  0a  0b
  3.1645 +	 * |    |                           0c  0d  0e  0f
  3.1646 +	 * |    |                           10  11  12  13
  3.1647 +	 * |    |                           14  15  16  17
  3.1648 +	 * |    |                           18  19  1a  1b
  3.1649 +	 * |    |                           1c  1d  1e  1f
  3.1650 +	 * |    |                           20  21  22  23
  3.1651 +	 * |    |                           24  25  26  27
  3.1652 +	 * |    |                           28  29  2a  2b
  3.1653 +	 * |    |                           2c  2d  2e  2f
  3.1654 +	 * |    |                           30  31  32  33
  3.1655 +	 * |    |                           34  35  36  37
  3.1656 +	 * |    |                           38  39  3a  3b
  3.1657 +	 * |    |                           3c  3d  3e  3f
  3.1658 +	 * |    |                           40  41  42  43
  3.1659 +	 * |    |                           44  45  46  47
  3.1660 +	 * |    |                           48  49  4a  4b
  3.1661 +	 * |    |                           4c  4d  4e  4f
  3.1662 +	 * |    |                           50  51  52  53
  3.1663 +	 * |    |                           54  55  56  57
  3.1664 +	 * |    |                           58  59  5a  5b
  3.1665 +	 * |    |                           5c  5d  5e  5f
  3.1666 +	 * |    |                           60  61  62  63
  3.1667 +	 * |    |                           64  65  66  67
  3.1668 +	 * |    |                           68  69  6a  6b
  3.1669 +	 * |    |                           6c  6d  6e  6f
  3.1670 +	 * |    |                           70  71  72  73
  3.1671 +	 * |    |                           74  75  76  77
  3.1672 +	 * |    |                           78  79  7a  7b
  3.1673 +	 * |    |                           7c  7d  7e  7f
  3.1674 +	 * |    |                           80  81  82  83
  3.1675 +	 * |    |                           84  85  86  87
  3.1676 +	 * |    |                           88  89  8a  8b
  3.1677 +	 * |    |                           8c  8d  8e  8f
  3.1678 +	 * |    |                           90  91  92  93
  3.1679 +	 * |    |                           94  95  96  97
  3.1680 +	 * |    |                           98  99  9a  9b
  3.1681 +	 * |    |                           9c  9d  9e  9f
  3.1682 +	 * |    |                           a0  a1  a2  a3
  3.1683 +	 * |    |                           a4  a5  a6  a7
  3.1684 +	 * |    |                           a8  a9  aa  ab
  3.1685 +	 * |    |                           ac  ad  ae  af
  3.1686 +	 * |    |                           b0  b1  b2  b3
  3.1687 +	 * |    |                           b4  b5  b6  b7
  3.1688 +	 * |    |                           b8  b9  ba  bb
  3.1689 +	 * |    |                           bc  bd  be  bf
  3.1690 +	 * |    |                           c0  c1  c2  c3
  3.1691 +	 * |    |                           c4  c5  c6  c7
  3.1692 +	 * |    |                           c8  c9  ca  cb
  3.1693 +	 * |    |                           cc  cd  ce  cf
  3.1694 +	 * |    |                           d0  d1  d2  d3
  3.1695 +	 * |    |                           d4  d5  d6  d7
  3.1696 +	 * |    |                           d8  d9  da  db
  3.1697 +	 * |    |                           dc  dd  de  df
  3.1698 +	 * |    |                           e0  e1  e2  e3
  3.1699 +	 * |    |                           e4  e5  e6  e7
  3.1700 +	 * |    |                           e8  e9  ea  eb
  3.1701 +	 * |    |                           ec  ed  ee  ef
  3.1702 +	 * |    |                           f0  f1  f2  f3
  3.1703 +	 * |    |                           f4  f5  f6  f7
  3.1704 +	 * |    |                           f8  f9  fa  fb
  3.1705 +	 * |    |                           fc  fd  fe  00
  3.1706 +	 * |    |                           01  02  03  04