Timing with io_net?

Hi,

I think this one is much more interresting :

So, let’s say :

  1. an ethernet packet come from the cable in a ethernet card.
  2. the card driver gives the packet to the “en->raw convertor” (without
    copying the data)
  3. the convertor gives it to the “producer” driver (it insert some new data)
  4. the producer gives the packet+data to a “raw->en convertor”
  5. the “raw->en convertor” gives the packet+data to an other card driver and
    it is sent.

| producer |
||
| |
|
| ||
|
|

→ A|
| |_______|B------------------->

Is it possible for io-net to handle all this?

Is it possible that it takes less than 5 microseconds to go from point A to
point B ?
Or is it completely impossible?

What does happen when an other packet arrives to point A before the first
packet has reached point B?

(now, I understand what are threads, mutex,…I guess it’s going to be part
of the answers)

This time, I hope these questions are more interresting for you…

Thank you for all the help you already gave me and for , I hope, some new
one :slight_smile:

Arnaud Stoumont

Read my comments inline

“arno stoum” <starn@yucom.be> wrote in message
news:ac3efk$fq6$1@inn.qnx.com

Hi,

I think this one is much more interresting :

So, let’s say :

  1. an ethernet packet come from the cable in a ethernet card.
  2. the card driver gives the packet to the “en->raw convertor” (without
    copying the data)
  3. the convertor gives it to the “producer” driver (it insert some new
    data)
  4. the producer gives the packet+data to a “raw->en convertor”
  5. the “raw->en convertor” gives the packet+data to an other card driver
    and
    it is sent.

| producer |
||
| |
|
| ||
|
|

→ A|
| |_______|B-------------------

Is it possible for io-net to handle all this?
Yes

Is it possible that it takes less than 5 microseconds to go from point A
to
point B ?
Or is it completely impossible?
Very Unlikely unless a highly compact code is written

What does happen when an other packet arrives to point A before the first
packet has reached point B?

The point A(Assuming the driver) does a tx_up for the received packet.Once
the call returns it can send another packet.So the Answer is under a normal
circumstance nothing untoward should happen.The Packets almost flow in a
serialized fashion between the modules.But you should take note that the
producer cannot receive any other packet till it returns from the rx_up
routine.For best results thus you might have to have another thread sending
packets to B

(now, I understand what are threads, mutex,…I guess it’s going to be
part
of the answers)

This time, I hope these questions are more interresting for you…

Thank you for all the help you already gave me and for , I hope, some new
one > :slight_smile:

Arnaud Stoumont

\

Hope these answers clear your doubts

Sreekanth

Thank you for all that, Sreekanth. :slight_smile: