[so2] [ixia challenge] struct sk_buff

Daniel Baluta daniel.baluta at gmail.com
Tue Mar 25 20:55:19 EET 2014


2014-03-25 19:27 GMT+02:00 Alexandru Preda <alexandru.preda91 at gmail.com>:
> On Mar 25, 2014 7:22 PM, "Daniel Baluta" <daniel.baluta at gmail.com> wrote:
>>
>> 2014-03-25 19:17 GMT+02:00 Gucea Doru <gucea.doru at gmail.com>:
>> > Salut,
>> >
>> > Am o intrebare pentru cei care au mai lucrat cu structuri de tipul
>> > sk_buff.
>> > Aloc o astfel de structura folosind:
>> > skb = netdev_alloc_skb_ip_align(nic->netdev, ETH_PKT_SIZE);
>> > dupa care fac diverse operatii pe skb, spre exemplu skb_reserve dupa
>> > care il
>> > dau catre nivelele superioare din stiva tcp.
>> >
>> > Eu as vrea sa refolosesc acest skb deja alocat pentru un nou pachet.
>> > Problema este ca raman modificati pointerii din el. Exista o modalitate
>> > de a
>> > ii face un reset, sa il aduc la starea de dupa netdev_alloc(in sensul ca
>> > pointerii sa se modifice corespunzator)?
>>
>> De ce faci asta? Poți aloca și dezaloca skb-ul de fiecare dată.
>
> Hmm... Trebuie eliberat? Nu e datoria nivelurilor superioare sa faca asta.
>
> Cred ca iese destul de urat daca il eliberam sau il modificam dupa ce l-am
> dus in sus.

Oh, wait! Ai dreptate.

AFAIK, la Rx e datoria nivelelor superioare sa elibereze skb-ul. La Tx
e datoria
driverului sa elibereze skb-ul, dupa ce nu mai are nevoie de el.

Daniel.


More information about the so2 mailing list