--- nono/host/hostnet.h 2026/04/29 17:05:21 1.1.1.2 +++ nono/host/hostnet.h 2026/04/29 17:05:26 1.1.1.3 @@ -75,16 +75,18 @@ class HostNetDevice : public HostDevice uint64 read_bytes; uint64 write_pkts; uint64 write_bytes; - int txqfull_pkts; // キューが一杯だった回数 + uint64 txqfull_pkts; // キューが一杯だった回数 uint64 txqfull_bytes; // キューに入れられなかったバイト数 uint64 rxdisable_pkts; // 上位層が受信無効 uint64 rxdisable_bytes; // 上位層が受信無効 uint64 rxjumbo_pkts; // 受信したジャンボパケット数 uint64 rxjumbo_bytes; // 受信したジャンボパケットのバイト数 - int rxqfull_pkts; // キューが一杯だった回数 + uint64 rxqfull_pkts; // キューが一杯だった回数 uint64 rxqfull_bytes; // キューに入れられなかったバイト数 - int rxfilter_pkts; // 受信フィルタで破棄したパケット数 - uint64 rxfilter_bytes; // フィルタされたバイト数 + uint64 rxnotme_pkts; // ユニキャストで破棄したパケット数 + uint64 rxnotme_bytes; // フィルタされたバイト数 + uint64 rxmcast_pkts; // マルチキャストで破棄したパケット数 + uint64 rxmcast_bytes; // フィルタされたバイト数 int txq_peak; // キューのおおよその最大使用量 int rxq_peak; // キューのおおよその最大使用量 @@ -117,6 +119,9 @@ class HostNetDevice : public HostDevice // プロミスキャスモードを設定する。 void SetPromisc(bool promisc_); + // マルチキャストフィルタを設定する。 + void SetMCastFilter(uint64 filter); + // ドライバ名を返す (ステータスパネルから呼ばれる) const std::string GetDriverName() const; @@ -147,6 +152,10 @@ class HostNetDevice : public HostDevice macaddr_t myaddr {}; // 自身の MAC アドレス bool promisc {}; // プロミスキャスモードなら true + // マルチキャストフィルタ。 + // 64ビットのうち、LSB 側を0番目、MSB 側を63番目となるようにしたもの。 + uint64 multicast_filter {}; + // キュー NetTxQueue txq {}; NetRxQueue rxq {};