Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: Boiler в May 30, 2006, 14:16



Титла: 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 след като се добави допълнителната информация освен самия пакет. Благодаря!