2

いくつかのカスタム ネットワーク プロトコルをテストするために、優れたステート マシン コンパイラを探していました。Yakindu、Ragel (コンパイラ)、SCXML (言語) などのいくつかのツールを既に調べましたが、それらのいずれかがネットワーク プロトコルに使用できるかどうかはわかりませんでした。

SCXML(language) は良さそうですが、C 専用のコンパイラは見つかりませんでした (scxmlcc は C++ 用です)。SCXML に基づく C のコンパイラを知っている人はいますか? Yakindu ツールは有望に見えますが、BGP/OSPF などのネットワーク プロトコルをテストできるかどうかはわかりません。誰でもこれについての指針を教えてください。Ragel も良さそうですが、このコンパイラを使用して複雑なネットワーク プロトコル クライアントを生成できるかどうかはわかりません。

特にネットワーク プロトコルについて言及した理由は、「イベント」が発生した後の「アクション」の一部として、packet_create/packet_send (カスタム パケット サイズ) などのカスタム ルーチンを実行できるようにしたいからです。

常に状態グラフからコードを生成する必要がありますか、または状態と直接対話する方法はありますか? 私はFSMに非常に慣れていません。ヘルプ/アドバイス/提案/リンクは大歓迎です。

4

3 に答える 3

5

デフォルトのYakindu SCT C コード ジェネレーターは、具体的な実行環境にとらわれないプレーンな C コードを生成します。これは、独自のアプリケーションに手動で統合できる標準 C コードの一部を取得することを意味します。この手動統合は、アプリケーションとステート マシンの間でイベント、操作、および変数をマッピングすることを意味します。さらに、ステート マシンの実行を適切にトリガーする必要があります。

これに関する情報は、ユーザー ガイドに記載されています。ニーズに合わせてコード ジェネレーターをカスタマイズすることもできますが、それは、アプリケーションへの統合が常に同じように見え、1 つまたは 2 つ以上のステート マシンを統合したい場合にのみ意味があります。

したがって、アプリケーション側の API についてさらに情報を提供していただければ、ステート マシンと統合する方法のヒントを提供できます。

于 2015-04-29T07:16:51.587 に答える
2

LOKIは、プログラマーやシステム管理者が BGP ネットワークと対話するための簡単な方法を提供するために設計された新しいアプリケーションです。OSPF/BGP 接続のテストにも使用できます

于 2015-05-28T06:45:06.947 に答える