2

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.

Mandar Chitre
  • 2,110
  • 6
  • 14

1 Answers1

0

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).

Mandar Chitre
  • 2,110
  • 6
  • 14