SylixOS AMP下跨网段通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SylixOS AMP下跨网段通信相关的知识,希望对你有一定的参考价值。

  1. 适用范围
    本方法适用于SylixOS AMP下配置有虚拟网络设备的跨网段通信。内核版本:1.7.3,硬件平台:TMDSEVM6678LE。
  2. 背景
    在近期构建的DSP6678工程中,0核运行SylixOS lite版,1-7核运行SylixOS动态加载版。其中只有0核能够使用有线网络,1-7核无法使用,使得无法通过网络调试和动态加载应用程序。然而每个核配置了虚拟网络,该虚拟网络基于共享内存实现。此时,需要配置网络,使得PC端能够通过DSP板卡上的有线网口与所有核通信。
  3. 网络拓扑图
    图 3 1是PC与TMS320C6678的网络拓扑图
    技术分享图片
    图 3 1 网络拓扑图
    TMS320C6678:
    虚拟网卡se1: ip=192.168.3.201
    虚拟网卡se2: ip=192.168.3.200
    物理网卡en1: ip=192.168.1.230
    PC:
    物理网卡enet1: ip=192.168.1.200

  4. 网络配置
    总体来说只需要设置两种配置即可:
    1、 配置网关;
    2、 开启CORE0转发。
    详细配置如下:
    1、 PC端:
    enet1配置网关为en1 ip=192.168.1.230;
    此时可以ping通se2。如果pc端存在同时使用多网卡且其他网卡设置了网关,此时会造成网络冲突。可以手工添加一条永久路由:route -p add 192.168.3.0 mask 255.255.255.0 192.168.1.230 metric 3 (删除:route delete 192.168.3.0)
    技术分享图片
    图 4 1 pc ping se2

2、 CORE0:
ipforward 1
使能core0转发,当网卡收到目的地址非本网卡的报文后,将找到合适路由转发报文。如果此时只配置了网关,pc端enet1的报文只能到达se2,无法到达se1。
3、 CORE1:
ifconfig se1 gateway 192.168.3.200
配置se1的网关,将其配置成se2的ip:192.168.3.200 这样,当SylixOS_1需要上PC发报文时,它就会先将报文发送给se2。
route add default dev se1
在core1上,需要设置默认设备,只有设置好默认网络设备后,默认网关才会开启,否则,ping的时候会一直报主机不可达错误。

配置完成后,通过PC端可以ping通C6678 CORE1-CORE7的虚拟网卡se1,也可以通过telnet登录。
技术分享图片

                                 4 2 pc ping se1

值得注意的是1.7.3内核虚拟网卡驱动代码中修改netdev的校验和的标志位。即NETDEV_CHKSUM_ENABLE_ALL 0x00ff改为0xffff,从而可以产生IP、ICMP、TCP等协议的头部校验和,实现与外部设备通信。

以上是关于SylixOS AMP下跨网段通信的主要内容,如果未能解决你的问题,请参考以下文章

SylixOS上EtherCAT实现

SylixOS中RPC简介

如何在保持纵横比且不切断图像数据的情况下跨横向和纵向显示图像

SylixOS与硬件设备连接问题——硬件设备串口网口连接问题

SylixOS组播使用

金融应用场景下跨数据中心的MGR架构方案