1. 程式人生 > >SylixOS AMP下跨網段通信

SylixOS AMP下跨網段通信

efault 校驗 fff fault mask 硬件 否則 路由 3.2

  • 適用範圍
    本方法適用於SylixOS AMP下配置有虛擬網絡設備的跨網段通信。內核版本:1.7.3,硬件平臺:TMDSEVM6678LE。
  • 背景
    在近期構建的DSP6678工程中,0核運行SylixOS lite版,1-7核運行SylixOS動態加載版。其中只有0核能夠使用有線網絡,1-7核無法使用,使得無法通過網絡調試和動態加載應用程序。然而每個核配置了虛擬網絡,該虛擬網絡基於共享內存實現。此時,需要配置網絡,使得PC端能夠通過DSP板卡上的有線網口與所有核通信。
  • 網絡拓撲圖
    圖 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

  • 網絡配置
    總體來說只需要設置兩種配置即可:
    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下跨網段通信