EN JA
XNB(4)
XNB(4) FreeBSD Kernel Interfaces Manual XNB(4)

名称

xnbXen 並列で仮想化されたバックエンドイーサネットドライバ

書式

このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

options XENHVM
device xenpci

解説

xnb ドライバは、並列で仮想化された (paravirtualized) xen(4) ネットワーク接続の後半 (back half) を提供しています。 netback と netfront ドライバは、クロスオーバケーブルによってリンクされたイーサネットデバイスとして、個別のオペレーティングシステムに現われます。通常、 xnb は、ドメイン 0 で実行し、netfront ドライバは、ゲストドメインで実行します。しかしながら、ゲストドメイン上で xnb を実行することも可能です。他のゲストドメインまたは物理的ネットワークにアクセスする netfront のドメインを提供するための bridged または routed となります。

あらゆる点で、 xnb デバイスは、他のイーサネットデバイスとして、OS に現われます。完全に ifconfig(8) で実行時に設定するすることができます。特に、MAC 変更、任意の MTU サイズ、受信と送信の両方のための IP、UDP と TCP に対するチェックサムオフロード、と TSO をサポートします。しかしながら、txcsum、rxcsum または tso を有効にする前に、 「警告」 を参照してください。

SYSCTL 変数

次の読み込み専用の変数は、 sysctl(8) を通して利用可能です:
dev.xnb.%d.dump_rings
netfront と netback 間の要求に渡すために使用されるリングバッファ関する情報を表示します。デバッグのためにもっとも役に立ちますが、トラフィックの統計値を得るためにも使用することができます。
dev.xnb.%d.unit_test_results
ユニットテストの組み込みの一式を実行し、結果を表示します。決してドライバの動作に影響しません。テスト一式がエラー状態をシミュレートすることに注意してください。この結果、エラーメッセージがシステムログに印刷 (出力) されます。

歴史

xnb デバイスドライバは、 FreeBSD 10.0 ではじめて登場しました。

作者

xnb ドライバは、 Alan Somers <alans@spectralogic.com>と John Suykerbuyk <johns@spectralogic.com>によって書かれました。

警告

Xennet を通して送信されたパケットは、共有メモリに引き渡されので、プロトコルは、リンクレイヤのチェックサムまたは CRC の形式を含んでいません。さらに、Xennet ドライバは、それらが受信と送信のチェックサムオフロードをサポートする、それらのホストに常に報告します。それらは、単にそれをスキップすることによってチェックサムの計算を "オフロード"します。それは、同じマシンの 2 つのドメインの間でやりとりされるパケットに対してうまく動作します。しかしながら、Xennet インタフェースが、物理的なインタフェースと橋渡しするとき、正確なチェックサムは、その物理的なインタフェースに向かうあらゆるパケットにアタッチされなければなりません。現在、FreeBSD は、たとえそれらのチェックサムが有効でなくても、新しい受信されたパケットが有効であることを OS に通知するイーサネットデバイスのためのメカニズムが不足しています。したがって、netfront ドライバがチェックサムの計算をオフロードするように設定されているなら、チェックサムが行われていないパケットを xnb に渡します。その結果、 xnb は、パケットを OS に渡す前に、ソフトウェアでチェックサムを計算しなければなりません。

このため、 xnb が物理的なインタフェースに橋渡しされるなら、送信チェックサムオフロードは、 netfront で無効になるべきであることが推奨されます。 Xennet プロトコルは、netback が、これを行うために netfront に要求するためのメカニズムがありません。オペレータは、それを手動で行わなければなりません。

バグ

xnb ドライバは、2 つ以上のイーサネットフレームをスパンするチェックサム UDP データグラムを適切に処理しません。チェックサム IPv6 パケットも正確に処理しません。そのバグの回避するために、netfront ドライバの送信チェックサムオフロードを無効にします。
January 6, 2012 FreeBSD