and message ID. The `GetMessageByteSize` returns the number of packets contained in message. The `GetMessagePacketTotal` returns the total number of packets belonging to a message. The `GetCurrentPktCnt` returns the number of packets currently contained in the queue entry. The `GetPacketSize` returns the size a data packet in a message. `AddPacket` adds a packet to the queue entry. `GetPackets` returns all of the packets contained in a message. The Packet Queue uses the Queue Entry functions to generate control packets, manage the message buffer, and retrieve messages for the Routing Protocol class.

Routing Protocol Class {#sec:routingclass}
----------------------

The Routing Protocol class inherits from ’s `Ipv4RoutingProtocol`. The Routing Protocol class implements the control logic of the protocols. The `Recv<Protocol>` function executes the control packet exchange based on the packet headers defined in the packet class. The Routing Class initializes the packet queue. The routing class interacts with the packet queue class to generate control packets, and the routing protocol class interacts with the packet queue class to store and retrieve messages. The `SendBeacons` function transmits beacon packets at the specific interval. The `SendDisjointMessages` calls the `FindDisjointMessages` from the Packet Queue class to generate the list of message to transmit to another node. 