自分のプログラムからNIC RXリングの数をETHTOOL API経由で取得しようとしました。 コマンドETHTOOL_GCHANNELSが返されますが、プログラムはエラーを返します。 サンプルコード:LinuxでNIC RXリングの数を取得する方法
echannels.cmd = ETHTOOL_GCHANNELS;
req.ifr_data = (void*)&echannels;
if (ioctl(sock, SIOCETHTOOL, &req) != 0)
ERR("Can't get %s channels info! %s", nic, strerror(errno));
else
rx_no = echannels.rx_count;
また、私は同じ結果とethtoolの "ethtoolの-lはeth0" からそれを取得しようとしました:
#ethtool -l eth0
Channel parameters for eth0:
Cannot get device channel parameters
: Operation not supported
が、/ procの中で/私はNICいることがわかり中断異なるCPUコアに複数のRXリングをバインドする必要があります。 誰かが私に正しい方法でCコードからRXリングの数を得ることを教えることができますか?