13.1.1 Adding a New Packet Header Type

Assuming we wish to create a new header called newhdr the following steps are performed:

  1. create a new structure defining the raw fields (called hdr_newhdr), define offset_ and access methods.
  2. define member functions for needed fields.
  3. create a static class to perform OTcl linkage (defines PacketHeader/Newhdr), do bind_offset() in its constructor.
  4. edit ~ns/tcl/lib/ns-packet.tcl to enable new packet format (see [*], [*]).

This is the recommended way to add your packet headers. If you do not follow this method, your simulation may still work, but it may behave in a unpredictable way when more protocols are added into your simulation. The reason is that the BOB (Bag of Bits, Section [*]) in ns packet is a large sparse space, assigning one wrong packet header offset may not trigger failure immediately.



Tom Henderson 2014-12-17