Why tx_done() is 20 seconds after tx_down() ?

Why I’ve got tx_done() 20 seconds after tx_down() ?

How to decrease this time ?
/I have to change some eth driver settings?

How can I know that I can send another packet
to eth card ?

Q <no@spam.pl> wrote:

Why I’ve got tx_done() 20 seconds after tx_down() ?

That’s when the driver released it.

How to decrease this time ?
/I have to change some eth driver settings?

There probably isn’t such a setting.

How can I know that I can send another packet
to eth card ?

You don’t have to wait for tx_done() to send
another packet. You can’t reuse a packet
until tx_done().

-seanb

That’s when the driver released it.

Yes, it’s a driver -

  • with another eth card (+ driver) I’ve got tx_done() immediately;

You don’t have to wait for tx_done() to send
another packet. You can’t reuse a packet
until tx_done().

Yes, but how can I know that
there is enough space for next packet in eth tx buffer ?

Is there (in io-net) sth like ‘flush’ ?
/to force get tx_done() :slight_smile:

Q <no@spam.pl> wrote:

That’s when the driver released it.

Yes, it’s a driver -

  • with another eth card (+ driver) I’ve got tx_done() immediately;

You don’t have to wait for tx_done() to send
another packet. You can’t reuse a packet
until tx_done().

Yes, but how can I know that
there is enough space for next packet in eth tx buffer ?

The tx_down() will return -1 and set errno if there
isn’t.

Is there (in io-net) sth like ‘flush’ ?
/to force get tx_done() > :slight_smile:

The tx_down() will return -1 and set errno if there
isn’t.

…and what errno I will get ?

#define ENOMEM 12 /* Not enough space

#define ENOSPC 28 /* No space left on device

#define ENOBUFS 255 /* No buffer space available */

Q <no@spam.pl> wrote:

The tx_down() will return -1 and set errno if there
isn’t.

…and what errno I will get ?

#define ENOMEM 12 /* Not enough space

#define ENOSPC 28 /* No space left on device

#define ENOBUFS 255 /* No buffer space available */

In this particular instance, ENOBUFS.

Regards,

-seanb