Hi!
could anybody explain me
– in which circumstances does my io-net filter
(above arp) could receive fragmented npkt
i told here not about IP fragmentation !!!
but about some number of iovecs in npkt
thanks!
–
Respectfully Yours
vasa
Hi!
could anybody explain me
– in which circumstances does my io-net filter
(above arp) could receive fragmented npkt
i told here not about IP fragmentation !!!
but about some number of iovecs in npkt
thanks!
–
Respectfully Yours
vasa
Hi,
<quoted from QNX6 NDDK network/introduction.html>
The Ethernet driver receives data from its hardware, and allocates one or
more packets into which it places the data.
plz, one more – in which cases net-driver
could allocate more than one packets ?
could anybody explain me
– in which circumstances does my io-net filter
(above arp) could receive fragmented npkti told here not about IP fragmentation !!!
but about some number of iovecs in npkt
thanks!
Respectfully Yours
vasa
vasa <vv40in@rambler.ru> wrote:
Hi,
quoted from QNX6 NDDK network/introduction.html
The Ethernet driver receives data from its hardware, and allocates one or
more packets into which it places the data.
/quotedplz, one more – in which cases net-driver
could allocate more than one packets ?
It depends on the hardware. The driver could decided to receive
more than one packet (put in several npkt) and decided pass THESE
npkt(s) up. That’s the above lines mean.
To answer your question, yes, these npkt(s), usually only have
1 iov.
However, a driver could decided to put data into multipule iovs
if they want (to reuse the memory, or hardware have on card ram
or for whatever reason).
Also, there could be other filters between the driver and arp,
so before your filter got a packet, these filters could check
packet, and decided to rewrite the packet, and maybe break the
packet into multipul iovs.
Same could happen on tx_down direction.
That’s why you should NEVER assume a packet have only one iov.
The best you can do, is have a “fast path” in your code, that
if it is one iov (npkt->tot_iov == 1), then do it “fast way”,
otherwise, do it “slow way”.
-xtang
could anybody explain me
– in which circumstances does my io-net filter
(above arp) could receive fragmented npkti told here not about IP fragmentation !!!
but about some number of iovecs in npkt
thanks!Respectfully Yours
vasa
Thanks a lot!
And one more question:
Can I assume that npkt is continued at least including TCP header ?
Respectfully Yours
vasa
“Xiaodan Tang” <xtang@qnx.com> wrote in message
news:a8cf94$gr8$3@nntp.qnx.com…
vasa <> vv40in@rambler.ru> > wrote:
Hi,quoted from QNX6 NDDK network/introduction.html
The Ethernet driver receives data from its hardware, and allocates one
or
more packets into which it places the data.
/quotedplz, one more – in which cases net-driver
could allocate more than one packets ?It depends on the hardware. The driver could decided to receive
more than one packet (put in several npkt) and decided pass THESE
npkt(s) up. That’s the above lines mean.To answer your question, yes, these npkt(s), usually only have
1 iov.However, a driver could decided to put data into multipule iovs
if they want (to reuse the memory, or hardware have on card ram
or for whatever reason).Also, there could be other filters between the driver and arp,
so before your filter got a packet, these filters could check
packet, and decided to rewrite the packet, and maybe break the
packet into multipul iovs.Same could happen on tx_down direction.
That’s why you should NEVER assume a packet have only one iov.
The best you can do, is have a “fast path” in your code, that
if it is one iov (npkt->tot_iov == 1), then do it “fast way”,
otherwise, do it “slow way”.-xtang
could anybody explain me
– in which circumstances does my io-net filter
(above arp) could receive fragmented npkti told here not about IP fragmentation !!!
but about some number of iovecs in npkt
thanks!Respectfully Yours
vasa