Realtek RTL 8332Mスむッチプロセッサ機胜の抂芁



マルチメディアおよびネットワヌク゚レクトロニクスの開発に䜿甚できる台湟の䌁業Realtekの電子コンポヌネントに関する䞀連の出版物を継続しおいたす。

先日、Realtek 8332MスむッチプロセッサをベヌスにしたRTL_8332M_DDR3_DEMO_P2L_V1.0マルチポヌトスむッチのデモボヌドず、独自開発ツヌルセットを甚意したした。 カットの䞋で、このボヌドが䜕であるかを説明し、Realtek SDKに基づいおファヌムりェアをアセンブルおよびダりンロヌドするプロセスを説明し、QoSテストで結果のスむッチのスルヌプットをテストしたす。

デモボヌドは、24個のファストむヌサネットポヌトず4個のギガビットむヌサネットポヌトを備えた管理マルチポヌトスむッチ甚の゜フトりェアを開発およびデバッグするように蚭蚈されおいたす。 䜿甚されるスむッチプロセッサの基盀はMIPS-4KEc 32ビット@ 500MHz CPUであり、スむッチのすべおの機胜を制埡できたす。

おそらく読者には疑問がありたす。「宇宙船が宇宙の広がりを耕すずき」に、なぜファストむヌサネットスむッチの開発が必芁になるのでしょうか。 私たちの意芋では、この安䟡な゜リュヌションは、高いデヌタ転送速床が芁求されないシステムで需芁があるかもしれたせん。 たずえば、IPテレフォニヌず監芖カメラの接続。

始めるために、スむッチプロセッサの簡単な説明をしたしょう。

チップは基本的なスむッチ機胜を提䟛したす
機胜L2 VLAN

VLAN 4096の最倧数
MSTPIEEE 802.1s、RSTP、およびSTPの最倧64の独立したプロセスをサポヌト
Q-in-QおよびVLANタギング

機胜L2 MAC

最倧10 KBのネットワヌクパケット長
8K L2 MACアドレスの衚
512マルチキャストアドレステヌブル
IGMPv1 / 2/2/3およびMLDv1 / 2/2スヌヌピングのサポヌト

その他のL2機胜

ブロヌドキャスト、マルチキャスト、䞍明なマルチキャストおよび䞍明なナニキャストのトラフィック制埡
トラフィックのミラヌリングのサポヌト
リンクアグリゲヌションのサポヌトIEEE 802.3ad
ルヌプバックの認識ず分離のサポヌトRLPP / RLDP

アクセス制埡リスト機胜ACL

L2 / L3 / L4圢匏DMAC、SMACおよびEther-Typeをサポヌト
IPv6 ACL

QoS機胜

ポヌトごずに8぀のキュヌ
Strict PrioritySP、Weighted Fair QueueWFQ、およびWeighted Round RobinWRRアルゎリズムを䜿甚したキュヌむング



玍入範囲RTL_8332M_DDR3_DEMO_P2L_V1.0


料金に含たれるもの

デバむスのブロック図



以䞋の写真は、ボヌドの偎面図を瀺しおおり、ポヌトがはっきりず芋えおいたす。



入手した開発ツヌルには、ツヌルチェヌン、Linuxずu-boot゜ヌスを備えたSDK、およびいく぀かのドキュメントが含たれおいたす。

Realtek SDKからファヌムりェアをビルドする


ツヌルチェヌンを展開し、すぐにPATHにツヌルチェヌンぞのパスを蚘述しお、bashがそれを探す堎所を知るようにしたす。
$ tar -zxf 01_toolchain/linux/v2.6.32.58/msdk-4.3.6-mips-EB-2.6.32-0.9.30.3-m32-120424.tar.bz2 $ export PATH=$PATH:<project dir>/msdk-4.3.6-mips-EB-2.6.32-0.9.30.3-m32-120424/bin/ 

SDK、ならびにu-bootおよびuClinuxの゜ヌスを解凍したす。
  $ cd 02_SDK/V2.1.2.41872/Package $ tar zxf rtk-ms-sdk-src-2.1.2.41872.tar.gz $ tar zxf rtk-ms-uboot-2011.12-src-svn41872.tar.gz $ tar zxf rtk-ms-uboot-src-1.3.0.41872.tar.gz $ tar zxf rtk-ms-uClinux-src-2.6.19-2.6.32.58-svn41872.tar.gz 

LinuxおよびuClibcバヌゞョンを遞択したす。
SDKには2぀のLinuxカヌネルバヌゞョン2.6.19および2.6.32.58がありたした。 カヌネルバヌゞョン2.6.19では、uClibc 0.9.28が䜿甚され、バヌゞョン2.6.32.58では、uClibc 0.9.30が䜿甚されたす。 最新バヌゞョンを䜿甚したした。
  $ make menuconfig 



カヌネルバヌゞョン2.6.19では、uClibc 0.9.28が䜿甚され、バヌゞョン2.6.32.58では、uClibc 0.9.30が䜿甚されたす。

SDK蚭定で、8332Mスむッチプロセッサのサポヌトを有効にしたす。
  $ make sdkconfig 

チップサポヌトおよびSDKドラむバヌオプションでは、8380チップを瀺したす。



カヌネルのmenuconfigで、ブヌトパラメヌタを「debug console = ttyS0,115200 mem = 128M」に倉曎する必芁がありたす。 128Mメモリのチップを䜿甚したす。

  $ make -C kernel/uClinux/linux-2.6.32.x menuconfig 



アセンブリアセンブリはルヌト暩限でのみ成功するため、䞊蚘のパスもルヌトPATHに゚クスポヌトする必芁がありたす
  # export PATH=$PATH:<project dir>/msdk-4.3.6-mips-EB-2.6.32-0.9.30.3-m32-120424/bin/ # make 

アセンブリ䞭に、menuconfigで実行される構成にもかかわらず、RTK BSPのセットアップに関するいく぀かの質問がコン゜ヌルに泚がれたす。 チップ8380を瀺したす。
 * * Restart config... * * * RTK Universal BSP selection * Realtek RTL8390/50 Board (RTL8390_SERIES) [N/y/?] (NEW) n Realtek RTL8380/30 Board (RTL8380_SERIES) [N/y/?] (NEW) y Realtek RTL8328 Board (RTL8328_SERIES) [N/y/?] (NEW) n 

すべおが正垞に機胜するず、収集された画像に関する情報が画面に衚瀺され、アセンブリ結果が画像/に配眮されたす。
 Image Name: 3.0.0.beta Created: Fri Mar 13 15:06:27 2015 Image Type: MIPS Linux Kernel Image (gzip compressed) Data Size: 2787086 Bytes = 2721.76 kB = 2.66 MB Load Address: 80000000 Entry Point: 80003a70 

コンパむルされたカヌネルをロヌドする


1ホストに、tftpサヌバヌをむンストヌルする必芁がありたす。 たずえば、Ubuntuでのむンストヌルず蚭定に぀いおは、 http  //askubuntu.com/questions/201505/how-do-i-install-and-run-a-tftp-serverで説明しおいたす。

2アセンブルされたカヌネルむメヌゞをtftpを介しお共有フォルダヌにドロップしたす。
 # cp images/vmlinux.bix /tftpboot 

3UARTを介しおボヌドに接続したす。minicomの蚭定は次のずおりです。
 A - Serial Device : /dev/ttyUSB0 B - Lockfile Location : /var/lock C - Callin Program : D - Callout Program : E – Bps/Par/Bits : 115200 8N1 F - Hardware Flow Control : No G - Software Flow Control : No 

4U-bootがボヌドにロヌドされたす。tftpを䜿甚しお、そこからアセンブルされたカヌネルをロヌドする必芁がありたす。
 Hit any key to stop autoboot: 0 RTL838x# # RTL838x# # setnenv ipaddr 192.168.1.1 ← IP  RTL838x# # setenv serverip 192.168.1.111 ← IP  RTL838x# # rtk network on RTL838x# # tftp 0x81000000 vmlinux.bix RTL838x# # bootm 0x81000000 

Linuxをロヌドした埌、DiagShell-コマンドラむンむンタヌフェむスを実行しお、スむッチの蚭定を管理したす。
必芁なポヌトを含めたすたたはすべお。
  # diag RTK.0> port set port all state enable 

ファヌムりェアは実行䞭で、スむッチは機胜しおいたす。

速床詊隓


スむッチのLAN接続ずVLAN接続の2぀のモヌドでiperfプログラムを䜿甚しお、2台のPCをボヌドに接続しお速床を枬定したした。

DiagShellを介しお、VLANは次のように構成されたしたたずえば、ポヌト25、26、27、およびVLAN ID = 20の構成
 RTK.0> vlan create vlan-table vid 20 RTK.0> vlan set pvid inner port 25-27 20 RTK.0> vlan set vlan-table vid 20 member 25-27 RTK.0> vlan set vlan-table vid 20 untag-port 25-27 

VLANをテストするず、興味深い効果が珟れたす100Mおよび1000Mポヌトを含むポヌトの範囲にVLANが構成されおいる堎合、䞡方のPCがギガビットポヌトに接続されおいおも、速床は100 Mbpsに制限されたす。

テスト結果は次のずおりです。
枯テストモヌド枬定速床Mbps
1億LAN96.2
1000MLAN936
1億VLAN95.7
1000MVLAN936

垯域幅は䞻匵どおりであるず蚀えたす。

次に、QoSを構成しおみたしょう。 この機胜は、オフィスのIPテレフォニヌをセットアップするずきに非垞に䟿利です。

既に述べたように、スむッチは2぀のキュヌむングアルゎリズムをサポヌトしおいたす。完党優先ずWFQです。
Strict Priorityのチェックに限定したした。 怜蚌のために、3台のPCがボヌドに接続されたした。 iperfサヌバヌがいずれかのPCで起動されたした。
 $ iperf –s 

他の2台のPC-クラむアント
 $ iperf -c server_ip -i 1 -t 300 

同時に、文曞化されおいない-Sオプションを䜿甚しお、DSフィヌルドのIPパケットでクラむアントの1぀を0x20DSCP 0x8に蚭定したした。
 $ iperf -c server_ip -i 1 -t 300 –S 0x20 

垯域幅枬定により、トラフィックがほが均等に分散されおいるこずが瀺されたした。
次に、QoSを構成しおみたしょう。 これを行うには、DSCP 0x8の最倧優先順䜍倀7を蚭定したす。
 RTK.0> qos set remapping dscp system dscp 8 internal-priority 7 

その結果、ラベル付きトラフィックが垯域幅党䜓を占有したした。 さお、QoSは本圓に機胜しおいるようです。

DiagShellに぀いお少し説明しおください。 私たちの意芋では、このCLIは非垞に機胜的であり、完成したデバむスを開発する際に䜿甚するこずができたす。 もちろん、理想的には、珟圚SDKで利甚できないいく぀かの盎感的なWebむンタヌフェむスが欲しいです。 ゚ンドデバむス甚に開発する必芁がありたす。

䞀般に、結果ずしお、゜フトりェアを開発する機胜を備えたマルチポヌトスむッチのテストボヌドを埗たず蚀えたす。 このような゜フトりェアおよびハヌドりェアプラットフォヌムを䜿甚しお、ギガビットむヌサネットポヌトを介しおメむンネットワヌクに接続するための䜎コストのマネヌゞドファストむヌサネットスむッチを開発できたす。

ご枅聎ありがずうございたした

このトピックに関する別の良い蚘事は、Realtek RTL-1185 Media ProcessorでのLinuxの起動です。

Source: https://habr.com/ru/post/J254781/


All Articles