2012-06-22 5 views
1

Мне нужно получить значение полей last_rx и trans_start в net_device struct ... но почему-то dev->last_rx всегда 0 (trans_start имеет действительное значение) ... почему это? Есть ли другое поле, которое дает это значение?Почему last_rx всегда 0?

вот фрагмент

struct net_device *dev; 
dev = first_net_device(&init_net); 

while (dev) 
{ 

     printk(KERN_ALERT "last received time is %li\n", dev->last_rx); 
     printk(KERN_ALERT "last transmit time is %li\n", dev->trans_start); 
     dev = next_net_device(dev); 
} 

Я пишу модуль ядра с помощью Linux Kernel 2.6.35

ответ

1

Я просто добавил dev->last_rx = jiffies; и он сработал! : D

struct net_device *dev; 
dev = first_net_device(&init_net); 

while (dev) 
{ 

     dev->last_rx = jiffies; 
     printk(KERN_ALERT "last received time is %li\n", dev->last_rx); 
     printk(KERN_ALERT "last transmit time is %li\n", dev->trans_start); 
     dev = next_net_device(dev); 
} 
0

Per these docs, last_rx в настоящее время не используется, так что возможно, что водитель не обновляется, что стоимость.

+0

также есть другой способ, чтобы получить это значение? –

0

Краткая Ответьте на свои вопросы, чтобы обновить драйвер. Драйвер отвечает за обновление значения. В упомянутых документах указано, что значение не используется и оно не используется ядром, но есть и другие вещи, которые будут его использовать. Если вы хотите использовать опрос arp с драйвером склеивания, это необходимо.

От http://www.makelinux.net/ldd3/chp-17-sect-3

неподписанных долгое trans_start;

без знака long last_rx;

Поля, которые имеют значение jiffies. Драйвер отвечает за обновление этих значений при начале передачи и при получении пакета, соответственно. Значение trans_start используется сетевой подсистемой для обнаружения блокировок передатчика. last_rx в настоящее время не используется, но драйвер должен поддерживать это поле в любом случае, чтобы быть готовым к будущему использованию.


видеть ссылки на last_rx в драйвере связующего здесь: http://www.kernel.org/doc/Documentation/networking/bonding.txt