用于为运行测试设置用户环境(主要是虚拟网络接口)的组件
ioppytest-agent的Python项目详细描述
f-interop平台代理(ioppytest代理)
关于
代理(~vpn客户端)是连接 iut使用amqp总线运行到测试工具。 此组件是ioppytest框架生态系统的一部分。 这些组件需要在用户的主机中运行,并且必须共享一些 在与被测实现(iut)的接口上,它将 启用在中的所有设备之间创建专用网络 会议。
操作系统要求
这个组件已经用macos和ubuntu(v15.04或更高版本)进行了测试。 还不支持Windows操作系统。 对于ubuntu 17.04或更高版本,您需要安装iproute2:
apt-get -y -qq install iproute2
安装
创建虚拟环境以避免扰乱当前环境
pip install virtualenv
virtualenv -p /usr/bin/python2.7 my_venv
source my_venv/bin/activate
使用pip安装ioppytest代理
pip install ioppytest-agent
设计
代理由连接到AMQP消息的不同进程组成 使用代理和交换消息(传入和传出)与其他组件 同一个AMQP经纪人。
注意
代理仅受python2支持->;tun librarires py2仅支持
核心
启动时,代理启动核心模块。此组件位于 负责发射所有其他组件。 如果需要添加新组件,只需启动 从这个组件。
错误处理
当有用户中断信号(ctrl-c)时,代理应该终止 所有其他部件,并尽可能优雅地断开。
IP隧道模式(有源探头)
此模式可用于通信两个基于IPv6的实现 通过AMQP消息隧道传输所有流量。
运行IP tun的代理程序
为了运行代理,您需要在机器上具有特权,基本上 因为我们需要打开一个虚拟接口来传送数据包。
执行命令的命令将由 gui或amqp broker sys admin,应该如下所示:
sudo python -m agent connect --url amqp://someUser:somePassword@f-interop.rennes.inria.fr/sessionXX --name coap_client
有关详细信息
python agent.py --help
python agent.py connect --help
+----------------+
| |
| AMQP broker |
| |
| |
+----------------+
^ +
| |
data.tun.fromAgent.agent_name | | data.tun.toAgent.agent_name
| |
+ v
+---------------------------------+
| |
| Agent |
| |
| (tun mode) |
| |
| |
| +------tun interface--------+ |
| |
| +----------------------------+ |
| | IPv6-based | |
| | communicating | |
| | piece of software | |
| | (e.g. coap client) | |
| | | |
| +----------------------------+ |
+---------------------------------+
串行模式(带802.15.4探头)
下图描述了代理的接口和 使用串行模式的交互(--serial选项)
待办事项: 添加指向探测源代码的链接
重要: 此工作模式采用以下IEEE802.15.4设置:
- 信道,调制,数据速率(信道11-26,2.4ghz)。
- mac模式是无信标的。
- 安全关闭
与活动探针结合的试剂
此模式可用于连接两个远程(地理上较远的) 基于802.15.4的设备。
活动模式探测器自动确认用户接收到的消息 设备,802.15.4未转发到AMQP连接。
运行带有活动探测器的代理(串行模式)
导出AMQP连接变量和串行连接的USB参数
环境变量:
export AMQP_EXCHANGE='amq.topic' export AMQP_URL="amqp://someUser:somePassword@f-interop.rennes.inria.fr/sessionXX"
检查USB端口,例如使用ls /dev/tty*
export FINTEROP_CONNECTOR_SERIAL_PORT=/dev/tty.XXX export FINTEROP_CONNECTOR_BAUDRATE=115200
然后执行(例如,对于在代理下运行的coap_服务器):
python -m agent connect --url $AMQP_URL --name coap_server --serial
+----------------+
| |
| AMQP broker |
| |
| |
+----------------+
^ +
| |
data.serial.fromAgent.agent_name | | data.serial.toAgent.agent_name
| |
+ v
+----------------+
| |
| |
| Agent |
| (serial mode) |
| |
| |
+-------+--------+
| USB interface
| (SLIP protocol)
+-------+--------+ +---------------+
| | 802.15.4 frame | |
| | <-----------------+ | 802.15.4 |
| probe mote | | user |
| (active mode) | +-----------------> | device |
| | | |
| | | |
+----------------+ +---------------+
与被动探头结合的探剂
此模式可用于将802.15.4网络中的所有嗅探数据包转发到AMQP代理 并最终使用其他工具来监听正确的路由键/主题。
运行带有被动探测器的代理(串行模式)
tbd
+----------------+
| |
| AMQP broker |
| |
| |
+----------------+
^
|
data.serial.fromAgent.agent_name |
|
+
+----------------+
| |
| |
| Agent |
| (serial mode) |
| |
| |
+-------+--------+
| USB interface
| (SLIP protocol)
+-------+--------+
| |
| |
| probe mote |
| (passive mode)|
| |
| |
+-------+--------+
|
|
|
|
+---------------+ | +---------------+
| | | | |
| 802.15.4 | <--------+--------+ | 802.15.4 |
| user | 802.15.4 frames | user |
| device | +-----------------> | device |
| | | |
| | | |
+---------------+ +---------------+