Dropped Packets

Could anyone explain what conditions cause io-net to drop packets?? What
would be the most efficient way to queue packets for analysis, without
dropping anything? Would a MsgSend() from my filters tx_up function on
every packet be too much overhead if I wanted to push all packet payload
into another process? Or maybe a static buffer that is mmapped into another
process, that could be filled with a packet and use MsgSendPulse to tell the
analysis process there is a packet waiting? Also I don’t need the packets
to be sent up to the IP stack, so I am just calling tx_done on every packet,
is this ok?

Matt Thompson
Infinity Technology Services (ITS) Inc.
http://www.infinity-its.com

Matt Thompson <mthompson@infinity-its.com> wrote:
: Could anyone explain what conditions cause io-net to drop packets?? What
: would be the most efficient way to queue packets for analysis, without
: dropping anything? Would a MsgSend() from my filters tx_up function on

You mean rx_up() func. Your filter will receive whatever the lower
layer passes up provided you’ve registered with _BYTE_PAT_ALL. That
is io-net itself won’t drop anything. What the lower layer decides
to pass up to you is up to it.

: every packet be too much overhead if I wanted to push all packet payload
: into another process? Or maybe a static buffer that is mmapped into another
: process, that could be filled with a packet and use MsgSendPulse to tell the
: analysis process there is a packet waiting? Also I don’t need the packets

This really depends on processor load. The most efficient may be to set up
a shared memory region and copy packets to it with a pulse. But if you’re
being starved by a higher priority process…

: to be sent up to the IP stack, so I am just calling tx_done on every packet,
: is this ok?

This is fine.

: Matt Thompson
: Infinity Technology Services (ITS) Inc.
: http://www.infinity-its.com