unetstack - 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.
解决方案
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)中找到一些社区代理。
推荐阅读
- sql - 如何更改 Oracle View 中的列数据类型?
- c# - UWP 将两个布尔值绑定到 IsEnabled 属性
- java - 十六进制的加密数据:试图解密
- c# - 防止 413 错误请求实体在 ASP.NET 中太大
- android - SafeArgs 未生成所需的操作类
- swift - 是否可以同时运行 2 个独立的 ARSession?
- excel - 如何锁定工作表中的特定范围但不锁定工作表
- here-api - 如何将车站代码翻译成 HERE API Transit ID?
- python - 当 Python 代码输出一个数组或数组列表时。是那些 NumPy 数组还是别的什么?
- powerbi - 按类别划分的 DAX 百分比