Re: [patch 4/10] s390: network driver.

From: Paul Jakma
Date: Mon Nov 15 2004 - 02:54:31 EST


On Sat, 13 Nov 2004, Jeff Garzik wrote:

Queues are DESIGNED to fill up under various conditions.

What happens when they are full? Blocking isnt good, at least not from GNU Zebra / Quagga's POV.

Would not the zebra routing software have the same problems with cable pull under an e1000 or tg3 gigabit NIC?

If they block further writes, yes.

The most popular drivers -- e1000, tg3, etc. -- do not do this, for very good reasons.

The problem is that GNU Zebra / Quagga uses a single raw socket for certain protocols, eg OSPF. Blocking the socket because one NIC has a cable pulled is undesireable, and there's no point queueing the packets, by the time the link comes back, if ever, its highly unlikely there is any use in sending the packets (sending OSPF hello's from X minutes ago on a link that just came back is useless).

The kernel really shouldnt get too much in the way of an application that already is fully aware of reliability issues[1] - at least that is the application's expectation in this case.

We could change it to use a socket/interface on Linux, but it seems a bit unnecessary to me, at least for raw socket/included-header sockets.

Jeff

1. an application must be if its uses raw sockets surely? Even for non-raw/header-included sockets, eg BGP tcp sockets, a user like GNU Zebra / Quagga would much prefer packets to be dropped.

regards,
--
Paul Jakma paul@xxxxxxxx paul@xxxxxxxxx Key ID: 64A2FF6A
Fortune:
My interest is in the future because I am going to spend the rest of my
life there.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/