嵌入式爱好者

查看: 15|回复: 0

[硬件咨询] TSN QBV测试问题

[复制链接]

1

主题

1

帖子

6

积分

扫一扫,手机访问本帖
发表于 昨天 16:10 | 显示全部楼层 |阅读模式
本帖最后由 hzy 于 2024-9-20 16:26 编辑

# 1. 实验环境

- 2块OK1028A-C V2.1板卡,板卡上包含:
  - 一个运行`Linux ls1028ardb 5.10.72-rt53 #1 SMP PREEMPT_RT`操作系统的终端;
  - 一个包含4个网口的TSN交换机,端口的位置信息:左下0号、左上1号、右下2号、右上3号;
- 一台Windows7调试机,能够通过串口以及ssh远程到板卡进行配置以及开发;
- 连接拓扑的真实图片以及逻辑拓扑图所示,使用在NXP2板卡上的交换机。

nxp.jpg

# 2. 网络配置

- 在NXP2板卡上配置并启动交换机

- ```sh
  ifconfig eno2 up
  ip link add name switch type bridge
  ip link set swp0 master switch && ip link set swp0 up
  ip link set swp1 master switch && ip link set swp1 up  
  ip link set swp2 master switch && ip link set swp2 up  
  ip link set swp3 master switch && ip link set swp3 up
  ip link set switch up
  ```

# 3. 测试程序

简单的socket套接字udp程序,参数指定发送模式、本地地址+端口以及远程地址+端口、发送端指定数据包大小以及周期。

# 4. 实验

## 4.1. 构造优先级为6的数据流

- 在NXP1上运行:

  - ```sh
    # 创建ID为100的VLAN接口
    ip link add link eno0 eno0.100 type vlan id 100
    # 配置VLAN的IP地址
    ip addr add 192.168.100.232/24 dev eno0.100
    # 设置socket优先级到pcp的映射,默认socket的优先级为0
    ip link set eno0.100 type vlan egres 0:6
    # 启动vlan接口
    ip link set dev eno0.100 up
    # 删除vlan接口
    # ip link delete eno0.100
    ```

- 在NXP2上运行:

  - ```sh
    # 创建ID为100的VLAN接口
    ip link add link eno0 eno0.100 type vlan id 100
    # 配置VLAN的IP地址
    ip addr add 192.168.100.234/24 dev eno0.100
    # 设置socket优先级到pcp的映射,默认socket的优先级为0
    ip link set eno0.100 type vlan egres 0:6
    # 启动vlan接口
    ip link set dev eno0.100 up
    # 删除vlan接口
    # ip link delete eno0.100
    ```

- 在NXP2上运行接收程序:

  - `./udp_socket recv 192.168.100.234 8888 `

- 在NXP1上运行发送程序:

  - `./udp_socket send 192.168.100.232 7777 192.168.100.234 8888 1024 1000`

- 网络抓包VLAN TAG确实是100,PCP为6

## 4.2. 关闭优先级6的通道

- 在NXP2上运行接收程序:
  - `./udp_socket recv 192.168.100.234 8888 `

- 在NXP1上运行发送程序:
  - `./udp_socket send 192.168.100.232 7777 192.168.100.234 8888 1024 1000`

- 在NXP2上配置配置swp1端口关闭6号通道,这里只配置一条门控,交换机会遍历门控循环执行。

  - ```sh
    echo 't0/10111111b/20000' > qbv0.txt
    #Explaination:
    # 'NUMBER' : t0
    # 'GATE_VALUE' : 10111111b,高位->低位分别是优先级为7-0
    # 'TIME_LONG' : 20000 ns
    ```

- 开启门控后20秒关闭门控

  - ```sh
    tsntool qbvset --device swp1 --entryfile ./qbv0.txt &&
    sleep 20 &&
    tsntool qbvset --device swp1 --disable
    ```

- 测试过程中出现了比较奇怪的现象,希望有懂的专家能够指教,尤其在发送1KB大小报文时出现,发送128字节时SSH断开的时间会延迟

  - 在设置门控后几秒钟(时间不确定)SSH远程登入中断了,在关闭门控后SSH恢复正常,会话的输出也没有丢失;
  - 理论上接收端应该丢失20包数据,实际上只观察到丢10包以下,抓包发现,在取消门控后,会瞬间收到多包数据,感觉上是这些数据缓存在交换机中。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-9-21 08:44

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表