NG_ASYNC(4) | FreeBSD Kernel Interfaces Manual | NG_ASYNC(4) |
名称
ng_async — 非同期フレーミング netgraph ノードタイプ解説
async ノードタイプは、RFC 1662 の PPP プロトコルで定義されるように同期フレームと非同期フレームの間の変換を実行します。非同期フレームは、フラグバイトとオクテット指向の非同期なシリアルラインでフレーム指向の接続をシミュレートするためのオクテットの詰め物を使用します。ノードは、 async フックで非同期データを送信し、受信します。着信データの mbuf 境界は、無視されます。いったん完全なパケットを受信すると、それをデコードして、すべてのフレームバイトを取り除き、シングルフレームとして sync フックで送信します。
同期フレームは、 sync フックで送信して、受信します。このフックで受信されたパケットは、非同期なフレームとしてコード化して、 async で送信します。アドレスと制御フィールド圧縮が採用され、チェックサムフィールドを含んでいない場合、受信されたパケットは、アドレスと制御フィールドか PPP プロトコルフィールドから始まるべきです。最初の 4 バイトが 0xff 0x03 0xc0 0x21 である (LCP プロトコルフレーム) なら、完全な制御文字エスケープは、そのフレームのために有効にされます (PPP では、LCP パケットは、アドレスなしで、制御フィールド圧縮、とすべての制御文字エスケープを常に送信します)。
このノードは、 async で送信されたパケットのための“フラグ共有”をサポートします。これは、1 つのフレームのトレーリング (後尾) フラグバイトが次のオープニング (開始) フラグバイトと共有されるところの最適化です。フレーム間のフラグ共有は、送信アイドル時間の 1 秒後に無効にされます。
フック
このノードタイプは、次のフックをサポートします:コントロールメッセージ
このノードタイプは、次を加えて、一般的なコントロールメッセージをサポートします:- NGM_ASYNC_CMD_SET_CONFIG ( setconfig)
-
struct ng_async_cfg によって説明されているノード設定を設定します。
struct ng_async_cfg { u_char enabled; /* コード化をオン/オフします */ uint16_t amru; /* 最大受信 async フレーム長 */ uint16_t smru; /* 最大受信 sync フレーム長 */ uint32_t accm; /* ACCM エンコード */ };
enabled フィールドは、すべてのエンコード(コード化)/デコード関数を (デフォルトは、無効) を有効にするか無効にします。無効にされると、ノードは、単純な“パススルー”モードで動作します。 amru と smru フィールドは、それぞれ非同期と同期 MRU (最大受信ユニット) 値です。これらは、ともに 1600 がデフォルトです。 async MRU は、非同期なデコード (復号化する) の後の着信フレームの長さに適用するのに注意してください。 accm フィールドは、文字 0x00 から 0x1f (デフォルトは、0xffffffff) のエスケープを制御する非同期文字制御マップです。
- NGM_ASYNC_CMD_GET_CONFIG ( getconfig)
- このコマンドは、現在の設定の構造体を返します。
- NGM_ASYNC_CMD_GET_STATS ( getstats)
- このコマンドは、パケット、オクテット、とエラーカウントのためのノード統計を含む struct ng_async_stat を返します。
- NGM_ASYNC_CMD_CLR_STATS ( clrstats)
- ノード統計をクリアします。
シャットダウン
このノードは、 NGM_SHUTDOWN コントロールメッセージを受け取るか、すべてのフックが切断されている時、シャットダウンします。関連項目
netgraph(4), ng_ppp(4), ng_tty(4), ngctl(8) W. Simpson, PPP in HDLC-link Framing, RFC 1662. W. Simpson, The Point-to-Point Protocol (PPP), RFC 1661.歴史
ng_async ノードタイプは、 FreeBSD 4.0 で実装されました。作者
<archie@FreeBSD.org>November 13, 2012 | FreeBSD |