Modules may implement protocols, services, algorithms,
or applications. For best results, it is advisable to keep
modules small. Ideally, each module ought to focus on a
single service or functionality; arbitrarily complex functionalities
should be achieved by linking various modules
together. Note that only modules are allowed to produce or
receive packets/messages, although they are not required to