I am trying to develop a customised protocol stack for the unet simulator. I want to know the options available to me for each layer. Also I want to use existing protocols rather develop them from scratch.
1 Answers
You can find the list of agents available in the default UnetStack installation in the etc/setup.groovy
file in the installation directory. Here's an extract from the current release version:
loadAgentByClass 'arp', 'org.arl.unet.addr.AddressResolution'
loadAgentByClass 'ranging', 'org.arl.unet.localization.Ranging'
loadAgentByClass 'mac', 'org.arl.unet.mac.CSMA'
loadAgentByClass 'uwlink', 'org.arl.unet.link.ECLink', 'org.arl.unet.link.ReliableLink'
loadAgentByClass 'transport', 'org.arl.unet.transport.SWTransport'
loadAgentByClass 'router', 'org.arl.unet.net.Router'
loadAgentByClass 'rdp', 'org.arl.unet.net.RouteDiscoveryProtocol'
loadAgentByClass 'statemanager', 'org.arl.unet.state.StateManager'
container.add 'remote', new org.arl.unet.remote.RemoteControl(cwd: new File(home, 'scripts'), enable: false)
container.add 'bbmon', new org.arl.unet.bb.BasebandSignalMonitor(new File(home, 'logs/signals-0.txt').path, 64)
In most cases, this lists one agent class (e.g. org.arl.unet.addr.AddressResolution
) per service (e.g. providing ADDRESS_RESOLUTION
service).
In some cases, multiple agents are listed (e.g. org.arl.unet.link.ECLink
and org.arl.unet.link.ReliableLink
) for the same service. In this case, each agent is attempted to be loaded in succession. The org.arl.unet.link.ECLink
agent is only available in the premium edition (and not in the downloadable community edition). So, in the community edition, this will load org.arl.unet.link.ReliableLink
to provide the LINK
service.
While these are the default agents in the UnetStack distribution, you can add/replace any of these with your own, or by agents written by others in the community. You can find some of the community agents in the unet-contrib repository, or in other personal Github repositories (e.g. dtn-unetstack).

- 2,110
- 6
- 14