Титла: Network driver Публикувано от: Boiler в May 30, 2006, 14:16 Здравейте! Вмомента правя един мрежови драйвер, който е малко нестандартен, всмисъл че пакета ми пристига сериино от друг такъв драйвер. Стигнах почти до края, но имам следния проблем. Когато пратя целия пакет, в приемната страна го получавам достоверно, но като го прехвърлям към горните слоеве чрез netif_rx(), няма ответна реакция от системата. Права теста като пускам пинг който да минава през двата мрежови интерфейса и целта му е истинска ланкарта. Знае ли някой дали към netif_rx() трябва да се подава целия пакет или само част от него? Под цял имам предвид дали да включа ethernet header-a или не.
Благодаря! Титла: Network driver Публикувано от: в May 30, 2006, 17:23 netif_rx() кво ти връща? Пробвай да дебъгнеш изписвайки статуса напр.:
result = netif_rx(blabla_skb); if (result==NET_RX_DROP) {printk("Dropped?!?\n");} if (result== NET_RX_SUCCESS) {printk("Recv.\n");} else printk("unknown error\n"); И после виж кво ще изблъска тва в dmesg. И как така само част от него? Коя част? Титла: Network driver Публикувано от: Boiler в May 31, 2006, 17:08 Оправих проблема. Оказа се че е хардуерна грешката. Все пак на netif_rx() се подава целия sk_buff след като се добави допълнителната информация освен самия пакет. Благодаря!
|