首页 > 解决方案 > Where do I find the the set of protocols available to use for each layer in the unet stack?

问题描述

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.

标签: unetstack

解决方案


etc/setup.groovy您可以在安装目录中的文件中找到默认 UnetStack 安装中可用的代理列表。以下是当前发布版本的摘录:

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)

在大多数情况下,这会org.arl.unet.addr.AddressResolution为每个服务(例如提供ADDRESS_RESOLUTION服务)列出一个代理类别(例如)。

在某些情况下,会针对同一服务列出多个代理(例如org.arl.unet.link.ECLink和)。org.arl.unet.link.ReliableLink在这种情况下,将尝试连续加载每个代理。该org.arl.unet.link.ECLink代理仅在高级版中可用(而不在可下载的社区版中)。所以,在社区版中,这将加载org.arl.unet.link.ReliableLink提供LINK服务。

虽然这些是 UnetStack 发行版中的默认代理,但您可以使用自己的或社区中其他人编写的代理添加/替换其中的任何一个。您可以在unet-contrib存储库或其他个人 Github 存储库(例如dtn-unetstack)中找到一些社区代理。


推荐阅读