реклама на сайте
подробности

 
 
> Не работает драйвер сетевого устройства
k000858
сообщение May 18 2018, 11:32
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



Портирую драйвер сетевого устройства (в общем ethernet драйвер) в OpenWRT. Драйвер успешно создает сетевой интерфейс и тд ондако ничего не работает. Не тикают даже счетчики в статистике. Сам драйвер выдран из SDK с 3.10.* ядром, в OpenWRT 4.4.14 ядро
Пока удалось выяснить что по каким то причинам не производится полинг интерфейса.

Сам интерфейс создается с помощью netif_napi_add, в аргументах которой указывается полинг функция. (которая, как выяснилось почему то не вызывается)

Кто сталкивался с подобным эффектом, или может у кого есть идейки куда капнУть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k000858
сообщение May 24 2018, 05:47
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



В моем случае вместо netif_rx выполняется netif_receive_skb (т.к. используется метод NAPI), функция возвращает в части случаев NET_RX_SUCCESS, в части случаев NET_RX_DROP, что говорит о том, что половина пакетов дропается.

При этом счетчик принятых пакетов в свойствах соединения растет. Так же растет и счетчик отправленных пакетов, однако входящих пакетов на ПК от устройства нет (соединение с ПК прямое).
Так же похоже после определенного количества принятых пакетов устройство перестает их принимать, во всяком случае счетчик принятых пакетов перестает расти. Такое ощущение что в систему пакеты поступают из драйвера, но не разгребаются там, занимаются всю доступную память, после чего устройство перестает отправлять пакеты в систему. может такое быть? какие могут быть причины?
Go to the top of the page
 
+Quote Post
winniethepooh
сообщение May 24 2018, 07:34
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Цитата(k000858 @ May 24 2018, 06:47) *
В моем случае вместо netif_rx выполняется netif_receive_skb (т.к. используется метод NAPI), функция возвращает в части случаев NET_RX_SUCCESS, в части случаев NET_RX_DROP, что говорит о том, что половина пакетов дропается.

При этом счетчик принятых пакетов в свойствах соединения растет. Так же растет и счетчик отправленных пакетов, однако входящих пакетов на ПК от устройства нет (соединение с ПК прямое).
Так же похоже после определенного количества принятых пакетов устройство перестает их принимать, во всяком случае счетчик принятых пакетов перестает расти. Такое ощущение что в систему пакеты поступают из драйвера, но не разгребаются там, занимаются всю доступную память, после чего устройство перестает отправлять пакеты в систему. может такое быть? какие могут быть причины?


сбрасывать пакеты сетевое устройство может по причине отсутствия свободных дескрипторов.
попробуйте изменить кол-во дескрипторов, например
#define DEF_RXDESC_NUM (100 вместо 4 если память позволяет..)
если все пакеты теряются на нижнем уровне то это должно помочь.

Сообщение отредактировал winniethepooh - May 24 2018, 07:37
Go to the top of the page
 
+Quote Post
k000858
сообщение May 24 2018, 08:04
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



Цитата(winniethepooh @ May 24 2018, 11:34) *
сбрасывать пакеты сетевое устройство может по причине отсутствия свободных дескрипторов.
попробуйте изменить кол-во дескрипторов, например
#define DEF_RXDESC_NUM (100 вместо 4 если память позволяет..)
если все пакеты теряются на нижнем уровне то это должно помочь.

попробую увеличить. правда вряд ли это поможет, большая часть пакетов все же удачно принимается, однако счетчик Rx0 = 0.

При том само устройство тоже отправляет пакеты (запрос DHCP), и этот запрос я вижу в программе DHCP сервер (мак точно устройства), но счетчик полученных пакетов на ПК 0. Как так??? ПО верхнего уровня пакет получает (DHCP запрос) а в свойствах сетевого соединения количество полученных пакетов не растет...

добавлено:

поправка - счетчик Rx на устройство растет в cat /proc/net/dev но не растет в ifconfig
Rx на ПК от устройства так же работает, вижу пакеты и в сниффере, но счетчик пакетов в винде не растет.

то есть у этих 2х эффектов одна причина.

пакеты - DHCP: запросы от устройства к ПК, затем ответ от ПК устройству и последующий повторный запрос (так по кругу) потому что ответ от ПК попал в систему устройства (netif_receive_skb NET_RX_SUCCESS) но система этот пакет не переварила.
Go to the top of the page
 
+Quote Post
winniethepooh
сообщение May 24 2018, 08:44
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Цитата(k000858 @ May 24 2018, 09:04) *
поправка - счетчик Rx на устройство растет в cat /proc/net/dev но не растет в ifconfig
Rx на ПК от устройства так же работает, вижу пакеты и в сниффере, но счетчик пакетов в винде не растет.

то есть у этих 2х эффектов одна причина.

пакеты - DHCP: запросы от устройства к ПК, затем ответ от ПК устройству и последующий повторный запрос (так по кругу) потому что ответ от ПК попал в систему устройства (netif_receive_skb NET_RX_SUCCESS) но система этот пакет не переварила.


да это интересно, что то в пакетах делает их невидимыми для ОС?
может можно сравнить с пакетами от другой системы..
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- k000858   Не работает драйвер сетевого устройства   May 18 2018, 11:32
- - winniethepooh   Цитата(k000858 @ May 18 2018, 12:32) Порт...   May 18 2018, 13:45
|- - k000858   Цитата(winniethepooh @ May 18 2018, 16:45...   May 21 2018, 04:09
|- - winniethepooh   Цитата(k000858 @ May 21 2018, 05:09) Вы в...   May 21 2018, 07:02
|- - k000858   Цитата(winniethepooh @ May 21 2018, 10:02...   May 21 2018, 07:40
|- - winniethepooh   Цитата(k000858 @ May 21 2018, 08:40) что ...   May 21 2018, 08:07
|- - k000858   Цитата(winniethepooh @ May 21 2018, 11:07...   May 21 2018, 08:54
|- - samike   Цитата(k000858 @ May 21 2018, 11:54) - в ...   May 22 2018, 06:16
|- - winniethepooh   Цитатаcat /proc/interrupts ? да оно   May 22 2018, 07:09
|- - k000858   Цитата(samike @ May 22 2018, 10:16) А как...   May 22 2018, 08:01
|- - samike   Цитата(k000858 @ May 22 2018, 11:01) Врод...   May 22 2018, 08:16
|- - k000858   Цитата(samike @ May 22 2018, 12:16) Тогда...   May 22 2018, 09:22
|- - samike   Цитата(k000858 @ May 22 2018, 12:22) Даль...   May 22 2018, 10:57
|- - k000858   Цитата(samike @ May 22 2018, 14:57) А как...   May 23 2018, 10:22
|- - winniethepooh   Цитата(k000858 @ May 23 2018, 11:22) да, ...   May 23 2018, 12:53
- - k000858   распарсив sk_buff полученного пакета и сравнив его...   May 28 2018, 05:14
|- - winniethepooh   Цитата(k000858 @ May 28 2018, 06:14) расп...   May 28 2018, 07:19
- - k000858   Больше волнует вопрос: при получении пакета, долже...   May 28 2018, 09:41
|- - winniethepooh   Цитата(k000858 @ May 28 2018, 10:41) Боль...   May 28 2018, 11:19
- - k000858   По делу есть кое какие продвижения: счетчик Rx уже...   May 31 2018, 04:43
- - k000858   В общем победил настройки встроенного в SoC свитча...   Jun 7 2018, 08:09
|- - winniethepooh   Цитата(k000858 @ Jun 7 2018, 09:09) В общ...   Jun 7 2018, 08:50
- - k000858   В общем драйвер успешно интегрирован, Lan'ы ра...   Jun 14 2018, 03:51
|- - winniethepooh   Цитата(k000858 @ Jun 14 2018, 04:51) В об...   Jun 14 2018, 10:51
|- - k000858   Цитата(winniethepooh @ Jun 14 2018, 14:51...   Jun 14 2018, 11:17
|- - winniethepooh   Цитата(k000858 @ Jun 14 2018, 12:17) тест...   Jun 14 2018, 13:26
|- - k000858   Цитата(winniethepooh @ Jun 14 2018, 16:26...   Jun 15 2018, 03:27
|- - winniethepooh   Цитата(k000858 @ Jun 15 2018, 04:27) самы...   Jun 15 2018, 07:17
|- - Olej   Цитата(k000858 @ Jun 15 2018, 06:27) Повт...   Jul 1 2018, 11:19
|- - k000858   Цитата(Olej @ Jul 1 2018, 14:19) В модели...   Jul 2 2018, 03:11
- - k000858   Как в драйвере задать битовую маску CPU, которая п...   Jun 21 2018, 10:09


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016