Hello, I have some (some basic and some more detailed) questions regarding the socket/queue relations in the linux kernel. First, I would like to explain what we want to do: We distinguish two basic traffic classes on raw ethernet, prioritized and "normal" traffic. Normal traffic would be the traffic as it is handled now, while prioritized traffic should meet some QoS criteria. We have some (although very basic at the moment) implementation for different MAC access for both classes, and want to extend the possibility for the prioritized traffic to set some parameters (data rate etc.) from user-space. (Prioritized traffic can also consist of more data streams with different rates.) I guess a currently possible solution would be to generate a new queue scheduling policy, but on the one hand this seems to imply some dependency between the different priorities (the prioritized traffic could consist of more streams with different rate), on the other hand the timing for packet transmission is crucial for our QoS approach, so I suspect the connection between driver and queue is too "loose" for this to work properly. My idea would be to open a new queue for each prioritized stream which is then handled independently by the driver, which again can take care for the different data rates. This would require the network driver to be changed, but the driver<->queue interface would stay untouched. What would be needed for this would be to hand down the "priority request" from the application (probably via setsockopt, as with ATM) and open up a new queue for this socket, which of course would have to be destroyed upon closing the socket. Is this a stupid idea, if so, why? It seems more straight-forward than doing this via the queue policy, and leaves the work to the driver (one could imagine doing some work in hardware...). What I do not understand from the source (and what I did not find documentation for) is, if it is at all possible to "switch" a socket to a newly created queue via setsockopt, and where I should place this. As we are currently using (udp/)ip - and probably will stick to it - I guess a possible "entry point" would be ip_setsockopt in net/ipv4/ip_sockglue.c, but again, I still do not see how I could tell the underlying network driver about this... :-) (Besides querying for the device name and then using ioctls.) Any ideas and hints are appreciated! Regards, Wolfgang - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html