BXE(4) | FreeBSD Kernel Interfaces Manual | BXE(4) |
名称
bxe — Broadcom NetXtreme II Ethernet 10Gb PCIe アダプタドライバ書式
このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:
もう一つの方法として、ブート時にモジュールとしてドライバをロードするためには、次の行を loader.conf(5) に置きます:
if_bxe_load="YES"
解説
bxe ドライバは、10Gb チップの Broadcom NetXtreme II ファミリに基づいた PCIe 10Gb イーサネットアダプタのサポートを行います。ドライバは、ジャンボフレーム、VLAN タグ付け、チェックサムオフロード (IPv4, TCP, UDP, IPv6-TCP, IPv6-UDP)、MSI-X 割り込み、 TCP Segmentation Offload (TSO)、Large Receive Offload (LRO) と Receive Side Steering (RSS) をサポートします。ハードウェア
bxe ドライバは、下記を含む 10Gb イーサネットコントローラチップの Broadcom NetXtreme II ファミリに基づいた様々な NIC のサポートを行います:
- Broadcom NetXtreme II BCM57710 10Gb
- Broadcom NetXtreme II BCM57711 10Gb
- Broadcom NetXtreme II BCM57711E 10Gb
- Broadcom NetXtreme II BCM57712 10Gb
- Broadcom NetXtreme II BCM57712-MF 10Gb
- Broadcom NetXtreme II BCM57800 10Gb
- Broadcom NetXtreme II BCM57800-MF 10Gb
- Broadcom NetXtreme II BCM57810 10Gb
- Broadcom NetXtreme II BCM57810-MF 10Gb
- Broadcom NetXtreme II BCM57840 10Gb / 20Gb
- Broadcom NetXtreme II BCM57840-MF 10Gb
設定
ドライバの振る舞いを調整するるために設定することができる多くの設定パラメータがあります。次のシステムブートの間に影響を受ける loader.conf(5) ファイルによってこれらのパラメータを設定することができます。次のパラメータは、ドライバの ALL インスタンスに影響します。- hw.bxe.debug
-
DEFAULT = 0
- hw.bxe.interrupt_mode
-
DEFAULT = 2
- hw.bxe.queue_count
-
DEFAULT = 4
- hw.bxe.max_rx_bufs
-
DEFAULT = 0
- hw.bxe.hc_rx_ticks
-
DEFAULT = 25
- hw.bxe.hc_tx_ticks
-
DEFAULT = 50
- hw.bxe.rx_budget
-
DEFAULT = 0xffffffff
- hw.bxe.max_aggregation_size
-
DEFAULT = 32768
- hw.bxe.mrrs
-
DEFAULT = -1
- hw.bxe.autogreeen
-
DEFAULT = 0
- hw.bxe.udp_rss
-
DEFAULT = 0
キューの数と受信バッファを修正するとき、特に注意しなければなりません。 FreeBSD は、 mbuf(9) 割り付けの最大数に制限されています。バッファの割り付けが失敗するなら、インタフェースの初期化は、失敗し、インタフェースは、使用可能になりません。ドライバは、バッファの割り付けのために最善を尽くします。それは、すべてか、または努力なしです。
sysctl(8) を使用して、 mbuf(9) の割り付けの制限を調整することができ、次のように netstat(1) で現在の使用法を見ることができます:
# netstat -m # sysctl kern.ipc.nmbclusters # sysctl kern.ipc.nmbclusters=<#>
動的にデフォルトの設定を上書きするためにインスタンスごとに設定することができる追加の設定パラメータがあります。下記の '#' は、ドライバのインスタンス / インタフェースのユニット番号と置き換えなければなりません:
- dev.bxe.#.debug
-
DEFAULT = 0
- dev.bxe.#.rx_budget
-
DEFAULT = 0xffffffff
追加の項目は、 ifconfig(8) を使用して設定することができます:
- MTU - Maximum Transmission Unit
-
DEFAULT = 1500
- Promiscuous Mode
-
DEFAULT = OFF
- Rx/Tx Checksum Offload
-
DEFAULT = RX/TX CSUM ON
- TSO - TCP Segmentation Offload
-
DEFAULT = ON
- LRO - TCP Large Receive Offload
-
DEFAULT = ON
診断とデバッグ
sysctl(8) を通して bxe によって公開された多くの統計値があります。デフォルトのドライバの設定をダンプするためには:
# sysctl -a | grep hw.bxe
すべてのインスタンスの設定と詳細な統計値をダンプするためには:
# sysctl -a | grep dev.bxe
(ドライバにインスタンス / インタフェースのユニット番号で '#' を置き換え) 単一のインスタンスのための情報をダンプするためには:
# sysctl -a | grep dev.bxe.#
単一のインスタンスのすべてのキューのための情報をダンプするためには:
# sysctl -a | grep dev.bxe.#.queue
(キュー番号で追加の '#' を置き換え) 単一のインスタンスの単一のキューに対する情報をダンプするためには:
# sysctl -a | grep dev.bxe.#.queue.#
bxe ドライバには、システムログに大量のデバッグメッセージをダンプする能力があります。 hw.bxe.debug sysctl(8) でロギングのデフォルトのレベルを設定することができます。ダンプされているあまりにも多くのログ記録の結果となるかもしれないので、この設定には注意してください。このパラメータがデフォルトのパラメータであるので、すべてのインスタンスに影響し、ドライバのタイミングを劇的に変更します。デバッグを援助するよりよい選択肢は、 dev.bxe.#.debug sysctl(8) で特定のインスタンスのデバッグレベルを動的に変更することです。これによって、利用者は、まとめてさまざまなデバッググループのログ記録のオン/オフを切り替えることができます。
切り替えることができるさまざまなデバッググループは、次の通りです:
DBG_LOAD 0x00000001 /* ロードしアンロードします */ DBG_INTR 0x00000002 /* 割り込み処理 */ DBG_SP 0x00000004 /* slowpath 処理 */ DBG_STATS 0x00000008 /* stat 更新 */ DBG_TX 0x00000010 /* パケット送信 */ DBG_RX 0x00000020 /* パケット受信 */ DBG_PHY 0x00000040 /* phy/link 処理 */ DBG_IOCTL 0x00000080 /* ioctl 処理 */ DBG_MBUF 0x00000100 /* mbuf 情報のダンプ */ DBG_REGS 0x00000200 /* レジスタのアクセス */ DBG_LRO 0x00000400 /* lro 処理 */ DBG_ASSERT 0x80000000 /* デバッグのアサート */ DBG_ALL 0xFFFFFFFF /* flying monkeys */
例えば、bxe0 で受信パスの問題をデバッグするためには:
# sysctl dev.bxe.0.debug=0x22
終了するとき、ログ記録の裏打ちをオフにします:
# sysctl dev.bxe.0.debug=0
歴史
bxe デバイスドライバは、 FreeBSD 9.0 ではじめて登場しました。作者
bxe ドライバは、 <edavis@broadcom.com>, <davidch@broadcom.com>と <zambrano@broadcom.com>によって書かれました。April 29, 2012 | FreeBSD |