25 #include "ns3/ipv4-address.h"
26 #include "ns3/ipv6-address.h"
27 #include "ns3/assert.h"
199 size += (*iter)->GetSerializedSize ();
220 (*iter)->Serialize (start);
256 std::string prefix =
"";
257 for (
int i = 0; i < level; i++)
259 prefix.append (
"\t");
262 os << prefix <<
"TLV Block {" << std::endl;
263 os << prefix <<
"\tsize = " <<
Size () << std::endl;
264 os << prefix <<
"\tmembers [" << std::endl;
268 (*iter)->Print (os, level+2);
271 os << prefix <<
"\t]" << std::endl;
272 os << prefix <<
"}" << std::endl;
285 ti !=
End () && oi != other.
End ();
299 return !(*
this == other);
440 size += (*iter)->GetSerializedSize ();
461 (*iter)->Serialize (start);
497 std::string prefix =
"";
498 for (
int i = 0; i < level; i++)
500 prefix.append (
"\t");
503 os << prefix <<
"TLV Block {" << std::endl;
504 os << prefix <<
"\tsize = " <<
Size () << std::endl;
505 os << prefix <<
"\tmembers [" << std::endl;
509 (*iter)->Print (os, level+2);
512 os << prefix <<
"\t]" << std::endl;
513 os << prefix <<
"}" << std::endl;
526 it !=
End () && ot != other.
End ();
540 return !(*
this == other);
842 .AddConstructor<PbbPacket> ()
874 size += (*iter)->GetSerializedSize ();
911 (*iter)->Serialize (start);
921 uint8_t flags = start.
ReadU8 ();
933 while (!start.
IsEnd ())
953 os <<
"PbbPacket {" << std::endl;
968 (*iter)->Print (os, 1);
971 os <<
"}" << std::endl;
1019 return !(*
this == other);
1436 size += (*iter)->GetSerializedSize ();
1493 (*iter)->Serialize (start);
1506 uint8_t addrlen = start.
ReadU8 ();
1511 addrlen = (addrlen & 0xf);
1519 newmsg = Create<PbbMessageIpv4> ();
1522 newmsg = Create<PbbMessageIpv6> ();
1538 uint8_t flags = start.
ReadU8 ();
1585 std::string prefix =
"";
1586 for (
int i = 0; i < level; i++)
1588 prefix.append (
"\t");
1591 os << prefix <<
"PbbMessage {" << std::endl;
1593 os << prefix <<
"\tmessage type = " << (int)
GetType () << std::endl;
1598 os << prefix <<
"\toriginator address = ";
1605 os << prefix <<
"\thop limit = " << (int)
GetHopLimit () << std::endl;
1610 os << prefix <<
"\thop count = " << (int)
GetHopCount () << std::endl;
1624 (*iter)->Print (os, level+1);
1626 os << prefix <<
"}" << std::endl;
1720 return !(*
this == other);
2204 uint8_t headlen = 0;
2206 uint8_t taillen = 0;
2212 size += 1 + headlen;
2265 uint8_t headlen = 0;
2266 uint8_t taillen = 0;
2274 start.
Write (head, headlen);
2288 start.
Write (tail, taillen);
2326 uint8_t numaddr = start.
ReadU8 ();
2327 uint8_t flags = start.
ReadU8 ();
2331 uint8_t headlen = 0;
2332 uint8_t taillen = 0;
2338 headlen = start.
ReadU8 ();
2339 start.
Read (addrtmp, headlen);
2344 taillen = start.
ReadU8 ();
2346 if (flags & AHAS_FULL_TAIL)
2352 for (
int i = 0; i < numaddr; i++)
2364 for (
int i = 0; i < numaddr; i++)
2387 std::string prefix =
"";
2388 for (
int i = 0; i < level; i++)
2390 prefix.append (
"\t");
2393 os << prefix <<
"PbbAddressBlock {" << std::endl;
2394 os << prefix <<
"\taddresses = " << std::endl;
2399 os << prefix <<
"\t\t";
2404 os << prefix <<
"\tprefixes = " << std::endl;
2409 os << prefix <<
"\t\t" << (int)(*iter) << std::endl;
2461 return !(*
this == other);
2487 uint8_t *tail, uint8_t &taillen)
const
2490 << &tail << static_cast<uint32_t> (taillen));
2509 for (i = 0; i < headlen; i++)
2511 if (buflast[i] != bufcur[i])
2525 if (buflast[i] != bufcur[i])
2532 else if (headlen == 0)
2543 memcpy (head, bufcur, headlen);
2555 for (i = 0; i < taillen; i++)
2562 return i == taillen;
2893 uint8_t flags = start.
ReadU8 ();
2943 std::string prefix =
"";
2944 for (
int i = 0; i < level; i++)
2946 prefix.append (
"\t");
2949 os << prefix <<
"PbbTlv {" << std::endl;
2950 os << prefix <<
"\ttype = " << (int)
GetType () << std::endl;
2954 os << prefix <<
"\ttypeext = " << (int)
GetTypeExt () << std::endl;
2959 os << prefix <<
"\tindexStart = " << (int)
GetIndexStart () << std::endl;
2964 os << prefix <<
"\tindexStop = " << (int)
GetIndexStop () << std::endl;
2967 os << prefix <<
"\tisMultivalue = " <<
IsMultivalue () << std::endl;
2971 os << prefix <<
"\thas value; size = " <<
GetValue ().
GetSize () << std::endl;
2974 os << prefix <<
"}" << std::endl;
3025 return !(*
this == other);