the same simulation run in the simulator.

routing protocols typically deal with “messages” as opposed to “packets”. Messages may range in size from a few kB to hundreds of MB, which means they need a mechanism for fragmenting and reassembling these messages on a hop-by-hop basis to meet lower layer requirements. routers also buffer messages if a next-hop is not available, and may replicate messages to multiple next hops. These features differentiate routing protocols from or traditional routing protocols. This also leads to various design architectures. s are often implemented as an application-overlay network with Convergence Layer Adapters (CLAs) for particular network types, instead of a native layer-3 routing protocol. The application-layer approach (e.g. the Bundling Protocol [@rfc5050]) has advantages in ease of development and flexibility, but prevents the overlay from interoperating with traditional IP applications. Due to these limitations, we implement routing protocols as native ns-3 routing protocols so they can be used with the existing ns-3 application classes. In addition we have designed an convergence architecture that supports messages made up of multiple packets. Our implementation includes application classes to generate such messages. All of this code is available from our website[^1], and we are in the process 