The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Статистическая информация

Статистическая информация

Предыдущая  Содержание  Следующая V*D*V

Последним необходимым методом драйвера является get_stats. Этот метод возвращает указатель на статистику для данного устройства. Его реализация довольно проста; показанный метод работает даже когда несколько интерфейсов управляются одним и тем же драйвером, потому что статистика размещена внутри структуры данных устройства.

 

struct net_device_stats *snull_stats(struct net_device *dev)

{

    struct snull_priv *priv = netdev_priv(dev);

    return &priv->stats;

}

 

Реальная работа, необходимая для получения достоверной статистики, распределена по всему драйверу, где обновляются различные поля. Ниже приведён список наиболее интересных полей в struct net_device_stats:

 

unsigned long rx_packets;

unsigned long tx_packets;

Общее количество входящих и исходящих пакетов, успешно переданных интерфейсом.

 

unsigned long rx_bytes;

unsigned long tx_bytes;

Количество байтов, полученных и переданных интерфейсом.

 

unsigned long rx_errors;

unsigned long tx_errors;

Количество ошибочных приёмов и передач. Нет конца тому, что может пойти не так при передаче пакета и структура net_device_stats включает в себя шесть счётчиков для специфичных ошибок приёма и пяти ошибок для передачи. Для полного списка смотрите <linux/netdevice.h>. Если возможно, ваш драйвер должен вести подробную статистику ошибок, потому что они могут быть наиболее полезны для системных администраторов, пытающихся обнаружить проблему.

 

unsigned long rx_dropped;

unsigned long tx_dropped;

Количество пакетов, отброшенных во время приёма и передачи. Пакеты отбрасываются, если нет памяти, необходимой для данных пакета. tx_dropped используется редко.

 

unsigned long collisions;

Число коллизий из-за перегрузки среды передачи.

 

unsigned long multicast;

Количество принятых многоадресных пакетов.

 

Стоит повторить, что метод get_stats может быть вызван в любое время, даже когда интерфейс выключен, поэтому драйвер должен хранить статистическую информацию так долго, как существует структура net_device.

Предыдущая  Содержание  Следующая