* ethernet QoS support? @ 2004-07-08 18:53 Kumar Gala 2004-07-08 19:01 ` Jeff Garzik 0 siblings, 1 reply; 19+ messages in thread From: Kumar Gala @ 2004-07-08 18:53 UTC (permalink / raw) To: Jeff Garzik; +Cc: netdev, hadi Jeff, I was wondering if there was any support for handling ethernet devices that support multiple RX/TX queues to provide QoS. If so any pointers would be great. thanks - kumar ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-08 18:53 ethernet QoS support? Kumar Gala @ 2004-07-08 19:01 ` Jeff Garzik 2004-07-08 20:00 ` jamal 0 siblings, 1 reply; 19+ messages in thread From: Jeff Garzik @ 2004-07-08 19:01 UTC (permalink / raw) To: Kumar Gala; +Cc: netdev, hadi Kumar Gala wrote: > Jeff, > > I was wondering if there was any support for handling ethernet devices > that support multiple RX/TX queues to provide QoS. If so any pointers > would be great. IIRC skb->priority provides priority bands for TX. Not sure about RX... jamal? Jeff ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-08 19:01 ` Jeff Garzik @ 2004-07-08 20:00 ` jamal 2004-07-09 7:02 ` Vladimir Kondratiev 0 siblings, 1 reply; 19+ messages in thread From: jamal @ 2004-07-08 20:00 UTC (permalink / raw) To: Jeff Garzik; +Cc: Kumar Gala, netdev On Thu, 2004-07-08 at 15:01, Jeff Garzik wrote: > Kumar Gala wrote: > > Jeff, > > > > I was wondering if there was any support for handling ethernet devices > > that support multiple RX/TX queues to provide QoS. If so any pointers > > would be great. > > IIRC skb->priority provides priority bands for TX. Not sure about RX... > jamal? The question was very ambigous. What is it that Kumar is looking for? Is it 802.1p, IP level etc? cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-08 20:00 ` jamal @ 2004-07-09 7:02 ` Vladimir Kondratiev 2004-07-09 13:18 ` jamal 2004-07-09 15:46 ` Kumar Gala 0 siblings, 2 replies; 19+ messages in thread From: Vladimir Kondratiev @ 2004-07-09 7:02 UTC (permalink / raw) To: netdev, hadi; +Cc: Jeff Garzik, Kumar Gala -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I guess, Kumar is asking for support for several Tx queues with different priorities. One need to start/stop these queues separately. This is dictated by presense of different priorities on physical layer. Kumar, is it 802.11? WME or TGE? Vladimir. On Thursday 08 July 2004 23:00, jamal wrote: > On Thu, 2004-07-08 at 15:01, Jeff Garzik wrote: > > Kumar Gala wrote: > > > Jeff, > > > > > > I was wondering if there was any support for handling ethernet devices > > > that support multiple RX/TX queues to provide QoS. If so any pointers > > > would be great. > > > > IIRC skb->priority provides priority bands for TX. Not sure about RX... > > jamal? > > The question was very ambigous. > What is it that Kumar is looking for? Is it 802.1p, IP level etc? > > cheers, > jamal -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA7kMCqxdj7mhC6o0RAkeKAJ96kf49fbVy4qOjqqBBuNzmCteTrQCfU55Q ke3RQ2prgMLEssvjeQIgegs= =/KHu -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 7:02 ` Vladimir Kondratiev @ 2004-07-09 13:18 ` jamal 2004-07-09 13:41 ` Vladimir Kondratiev 2004-07-09 15:46 ` Kumar Gala 1 sibling, 1 reply; 19+ messages in thread From: jamal @ 2004-07-09 13:18 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: netdev, Jeff Garzik, Kumar Gala On Fri, 2004-07-09 at 03:02, Vladimir Kondratiev wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > I guess, Kumar is asking for support for several Tx queues with different > priorities. One need to start/stop these queues separately. This is dictated > by presense of different priorities on physical layer. Exactly. I referenced him to you. Have you started any work yet? cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 13:18 ` jamal @ 2004-07-09 13:41 ` Vladimir Kondratiev 2004-07-09 14:33 ` jamal 0 siblings, 1 reply; 19+ messages in thread From: Vladimir Kondratiev @ 2004-07-09 13:41 UTC (permalink / raw) To: netdev, hadi; +Cc: Jeff Garzik, Kumar Gala -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Friday 09 July 2004 16:18, jamal wrote: > On Fri, 2004-07-09 at 03:02, Vladimir Kondratiev wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > I guess, Kumar is asking for support for several Tx queues with different > > priorities. One need to start/stop these queues separately. This is > > dictated by presense of different priorities on physical layer. > > Exactly. I referenced him to you. Have you started any work yet? > > cheers, > jamal Yes, I do. So far, I have hardware related parts working. I rely on skb->priority to determine traffic class and select proper queue. All this worth nothing if one can't do separate queues. qdisc assignment for driver is not in driver's hands, so it can't do any assumptions. Generic in-kernel support needed here. Stack should allow driver to request additional Tx queues, providing some classifiers for each one. I tried to imagine how to work it around, but there is no good solution without those several queues. This mean, I will be able to deliver QoS support when network stack will make it possible. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA7qCPqxdj7mhC6o0RAoFEAJ4j3a7ekravvh9vQC229M5a8PXcHACfY5Rp PuvymlVUopAiUyNGqbSMl/c= =gvWz -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 13:41 ` Vladimir Kondratiev @ 2004-07-09 14:33 ` jamal 2004-07-09 18:26 ` Vladimir Kondratiev 0 siblings, 1 reply; 19+ messages in thread From: jamal @ 2004-07-09 14:33 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: netdev, Jeff Garzik, Kumar Gala On Fri, 2004-07-09 at 09:41, Vladimir Kondratiev wrote: > So far, I have hardware related parts working. I rely on skb->priority to > determine traffic class and select proper queue. Who marks the skb->priority? Is that the default mark as per TOS? I think the VLAN code marks it as well. > All this worth nothing if one can't do separate queues. qdisc assignment for > driver is not in driver's hands, so it can't do any assumptions. > Generic > in-kernel support needed here. Stack should allow driver to request > additional Tx queues, providing some classifiers for each one. I tried to > imagine how to work it around, but there is no good solution without those > several queues. I dont think we should put intelligence at the driver level. We can have drivers configured via parameter to look at the priority field. Only then do they look at it; else use only single ring. When multi-ring is on, you intepret the priority. priority field is set above driver based on which priority queue the packet was grabbed from (before sending to driver). > This mean, I will be able to deliver QoS support when network stack will make > it possible. So what do you do now? cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 14:33 ` jamal @ 2004-07-09 18:26 ` Vladimir Kondratiev 2004-07-09 22:34 ` Sam Leffler 2004-07-12 12:18 ` jamal 0 siblings, 2 replies; 19+ messages in thread From: Vladimir Kondratiev @ 2004-07-09 18:26 UTC (permalink / raw) To: netdev, hadi; +Cc: Jeff Garzik, Kumar Gala -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Friday 09 July 2004 17:33, jamal wrote: > On Fri, 2004-07-09 at 09:41, Vladimir Kondratiev wrote: > > So far, I have hardware related parts working. I rely on skb->priority to > > determine traffic class and select proper queue. > > Who marks the skb->priority? Is that the default mark as per TOS? > I think the VLAN code marks it as well. I don't care. It should not be driver's business. Actually, it is TOS. AFAIK, application supposed to do setsockoption(SO_PRIORITY) on its socket so set priority. > > > All this worth nothing if one can't do separate queues. qdisc assignment > > for driver is not in driver's hands, so it can't do any assumptions. > > Generic > > in-kernel support needed here. Stack should allow driver to request > > additional Tx queues, providing some classifiers for each one. I tried to > > imagine how to work it around, but there is no good solution without > > those several queues. > > I dont think we should put intelligence at the driver level. > We can have drivers configured via parameter to look at the priority > field. Only then do they look at it; else use only single ring. > When multi-ring is on, you intepret the priority. > priority field is set above driver based on which priority queue the > packet was grabbed from (before sending to driver). Agree about intelligence. Driver should serve link and MAC layer. But exactly because link layer have different priorities, driver need several Tx queues. It is stack's business to route packet to the proper queue. Driver should deliver it using appropriate MAC layer priority. > > > This mean, I will be able to deliver QoS support when network stack will > > make it possible. > > So what do you do now? Waiting. If no support will exist, it simply means we will be unable to use QoS provided by modern 802.11. Depending on market development, impact may range from being slightly slower relating to Windows clients, to being almost completely unable to communicate for traffic like VOIP. Later will be the case if most access points will implement QoS as in TGE. I can now deliver packets accordingly to skb->priority, but if stack have different idea for what is proper proportion between different sorts of traffic, driver's Tx path will be flooded with low priority frames. Situation is much worser for streams with admission control. I have no mechanism to communicate with stack for such traffic establishment and tear down. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA7uNiqxdj7mhC6o0RAoDyAJ9dx9ibVRee1tV5RRZXyK5X+4QjswCeJ5Vj 4nZ3BKNlzLPnoga6oblpGNw= =n/gU -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 18:26 ` Vladimir Kondratiev @ 2004-07-09 22:34 ` Sam Leffler 2004-07-10 8:58 ` Vladimir Kondratiev 2004-07-12 12:18 ` jamal 1 sibling, 1 reply; 19+ messages in thread From: Sam Leffler @ 2004-07-09 22:34 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: netdev, hadi, Jeff Garzik, Kumar Gala On Friday 09 July 2004 11:26 am, Vladimir Kondratiev wrote: > > So what do you do now? > > Waiting. If no support will exist, it simply means we will be unable to use > QoS provided by modern 802.11. Depending on market development, impact may > range from being slightly slower relating to Windows clients, to being > almost completely unable to communicate for traffic like VOIP. Later will > be the case if most access points will implement QoS as in TGE. > > I can now deliver packets accordingly to skb->priority, but if stack have > different idea for what is proper proportion between different sorts of > traffic, driver's Tx path will be flooded with low priority frames. > > Situation is much worser for streams with admission control. I have no > mechanism to communicate with stack for such traffic establishment and tear > down. FWIW the madwifi net80211 layer parses TOS to calculate priority and sticks it in the skb. It also calculates the WME AC to form the QoS frame matter. This is then handed to drivers below. The Atheros driver supports multiple tx queues in h/w with appropriate scheduling (for 5212 MACs); it uses the AC to set packets on the appropriate queue. Clearly it'd be better if upper layers did the TOS stuff. Whatever is done however should consider the case where the driver (nee h/w) has it's own queueing/scheduling facilities. Sam ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 22:34 ` Sam Leffler @ 2004-07-10 8:58 ` Vladimir Kondratiev 2004-07-12 8:38 ` Glen Turner 0 siblings, 1 reply; 19+ messages in thread From: Vladimir Kondratiev @ 2004-07-10 8:58 UTC (permalink / raw) To: netdev; +Cc: Sam Leffler, hadi, Jeff Garzik, Kumar Gala -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Saturday 10 July 2004 01:34, Sam Leffler wrote: > On Friday 09 July 2004 11:26 am, Vladimir Kondratiev wrote: > > > So what do you do now? > > > > Waiting. If no support will exist, it simply means we will be unable to > > use QoS provided by modern 802.11. Depending on market development, > > impact may range from being slightly slower relating to Windows clients, > > to being almost completely unable to communicate for traffic like VOIP. > > Later will be the case if most access points will implement QoS as in > > TGE. > > > > I can now deliver packets accordingly to skb->priority, but if stack have > > different idea for what is proper proportion between different sorts of > > traffic, driver's Tx path will be flooded with low priority frames. > > > > Situation is much worser for streams with admission control. I have no > > mechanism to communicate with stack for such traffic establishment and > > tear down. > > FWIW the madwifi net80211 layer parses TOS to calculate priority and sticks > it in the skb. It also calculates the WME AC to form the QoS frame matter. Sam, I think, to use skb->priority is more proper then parse TOS. Several points for this: 1. by default, IP code do it for you - it sets skb->priority equal to TOS; 2. stack may have better idea of what priority should be assigned. For this, it have all queuing/classifiers stuff with qdiscs. 3. it is layer violation to use information above MAC. It may be non-IP stack above you. > This is then handed to drivers below. The Atheros driver supports multiple > tx queues in h/w with appropriate scheduling (for 5212 MACs); it uses the > AC to set packets on the appropriate queue. > > Clearly it'd be better if upper layers did the TOS stuff. Whatever is done > however should consider the case where the driver (nee h/w) has it's own > queueing/scheduling facilities. > I also do something similar. But, to be honest, this is not working. If stack feeds you with different mixture of high and low priority streams, you can do nothing. All you can do by doing additional in-driver queuing is to smooth short spikes. What will you do for TGE? HCCA TSPECS and EDCA categories with admission control? I continue to insist that for true MAC layer QoS, we need several Tx queues. Anyway, I see we are on the same page with you, as we are facing same problems. Vladimir -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA76/Rqxdj7mhC6o0RAvyMAJ0UafCsb2P94oo5FVbNoIZ3+qVXEACfTI3D l9a0YAXR9xPvlpz0wZMlWdQ= =BrFw -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-10 8:58 ` Vladimir Kondratiev @ 2004-07-12 8:38 ` Glen Turner 2004-07-12 12:26 ` jamal 0 siblings, 1 reply; 19+ messages in thread From: Glen Turner @ 2004-07-12 8:38 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: netdev, Sam Leffler, hadi, Jeff Garzik, Kumar Gala On Sat, 2004-07-10 at 18:28, Vladimir Kondratiev wrote: > I continue to insist that for true MAC layer QoS, we need several Tx queues. If you have several MAC-layer queues, then do you have another set of MAC-layer scheduling? If so, how do you select the algorithm? I suggest this can of worms requires further thought before we end up with two layers of QoS queuing and scheduling. Cheers, Glen PS: Can we *please* deprecate use of the ToS bits. We had almost killed them and Linux is again encouraging their use, much to the despair of network operators (who want DiffServ, or at least DiffServ-compatible use of IP Precedence) -- Glen Turner Tel: +61 8 8303 3936 Australian Academic & Research Network www.aarnet.edu.au ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-12 8:38 ` Glen Turner @ 2004-07-12 12:26 ` jamal 2004-07-12 18:17 ` Vladimir Kondratiev 0 siblings, 1 reply; 19+ messages in thread From: jamal @ 2004-07-12 12:26 UTC (permalink / raw) To: Glen Turner Cc: Vladimir Kondratiev, netdev, Sam Leffler, Jeff Garzik, Kumar Gala On Mon, 2004-07-12 at 04:38, Glen Turner wrote: > On Sat, 2004-07-10 at 18:28, Vladimir Kondratiev wrote: > > > I continue to insist that for true MAC layer QoS, we need several Tx queues. > > If you have several MAC-layer queues, then do you have > another set of MAC-layer scheduling? If so, how do you > select the algorithm? A mapping is being suggested. Qdiscs handle the queueing. Send it to the driver/MAC layer with instructions of which queue it goes on. > I suggest this can of worms requires further thought > before we end up with two layers of QoS queuing and > scheduling. Refer to the thread earlier; i think the mapping is pretty much sufficient. > PS: Can we *please* deprecate use of the ToS bits. We had > almost killed them and Linux is again encouraging their > use, much to the despair of network operators (who want > DiffServ, or at least DiffServ-compatible use of IP > Precedence) I know you are refering to the default linux behavior, but do you use any of the diffserv enablers like dsmark to set DSCPs? I think 2.6.7+ we should change that default behavior. What exactly are the network operators complaining about? cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-12 12:26 ` jamal @ 2004-07-12 18:17 ` Vladimir Kondratiev 2004-07-13 2:33 ` jamal 0 siblings, 1 reply; 19+ messages in thread From: Vladimir Kondratiev @ 2004-07-12 18:17 UTC (permalink / raw) To: netdev, hadi; +Cc: Glen Turner, Sam Leffler, Jeff Garzik, Kumar Gala -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Monday 12 July 2004 15:26, jamal wrote: > On Mon, 2004-07-12 at 04:38, Glen Turner wrote: > > On Sat, 2004-07-10 at 18:28, Vladimir Kondratiev wrote: > > > I continue to insist that for true MAC layer QoS, we need several Tx > > > queues. > > > > If you have several MAC-layer queues, then do you have > > another set of MAC-layer scheduling? If so, how do you > > select the algorithm? > > A mapping is being suggested. Qdiscs handle the queueing. Send it to > the driver/MAC layer with instructions of which queue it goes on. Problem is, I don't know how driver can dictate what qdiscs should be attached to it. AFAIK, it is under 'tc' control. What I suggest, is to provide some API for driver to configure its qdiscs. > > > I suggest this can of worms requires further thought > > before we end up with two layers of QoS queuing and > > scheduling. > > Refer to the thread earlier; i think the mapping is pretty much > sufficient. There is a bit more complex then just diffserv. Glen touched very good point: it should be no 2 QoS policies. Since in case of 802.11, policy dictated from link layer, driver should be able to configure upper layers accordingly. And most complex item: I don't know how to support intserv type of streams, i.e. streams with admission control. let's say it is like RSVP with support on link layer. Should I try to summarize QoS facilities defined in TGE (new standard for QoS in 802.11)? I tried to do it once, but I don't feel I expressed it clearly. > > > PS: Can we *please* deprecate use of the ToS bits. We had > > almost killed them and Linux is again encouraging their > > use, much to the despair of network operators (who want > > DiffServ, or at least DiffServ-compatible use of IP > > Precedence) One more reason why I prefer to use skb->priority over TOS: driver should be protocol agnostic. It may be non-IP, and TOS may be missing. > > I know you are refering to the default linux behavior, but > do you use any of the diffserv enablers like dsmark to set DSCPs? > I think 2.6.7+ we should change that default behavior. What exactly > are the network operators complaining about? > > cheers, > jamal -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA8tXIqxdj7mhC6o0RAsICAKCBBsGH5fXO3z/muggJ0K/z7o5cMwCcDaFm qNV8hhHZRpoPHbcSSv1QHac= =AVLn -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-12 18:17 ` Vladimir Kondratiev @ 2004-07-13 2:33 ` jamal 0 siblings, 0 replies; 19+ messages in thread From: jamal @ 2004-07-13 2:33 UTC (permalink / raw) To: Vladimir Kondratiev Cc: netdev, Glen Turner, Sam Leffler, Jeff Garzik, Kumar Gala > > A mapping is being suggested. Qdiscs handle the queueing. Send it to > > the driver/MAC layer with instructions of which queue it goes on. > > Problem is, I don't know how driver can dictate what qdiscs should be attached > to it. AFAIK, it is under 'tc' control. What I suggest, is to provide some > API for driver to configure its qdiscs. I think driver doing this is the wrong abstraction layer.. How about this: Write a user space daemon that receives those L2 policy frames from the driver. Daemon then uses netlink to configure the qdiscs appropriately. This replaces the human opertaor who would do this in the case of a static setup. > And most complex item: I don't know how to support intserv type of streams, > i.e. streams with admission control. let's say it is like RSVP with support > on link layer. OK, so it is RSVP being used for policy config then? You seem to indicate it RSVP-like? > Should I try to summarize QoS facilities defined in TGE (new standard for QoS > in 802.11)? I tried to do it once, but I don't feel I expressed it clearly. I think so. > One more reason why I prefer to use skb->priority over TOS: driver should be > protocol agnostic. It may be non-IP, and TOS may be missing. The TOS was being used as an example. The VLAN code for example sets skb->priority at L2 as well. So nothing protcol specific about skb->priority. cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 18:26 ` Vladimir Kondratiev 2004-07-09 22:34 ` Sam Leffler @ 2004-07-12 12:18 ` jamal 2004-07-12 18:07 ` Vladimir Kondratiev 1 sibling, 1 reply; 19+ messages in thread From: jamal @ 2004-07-12 12:18 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: netdev, Jeff Garzik, Kumar Gala On Fri, 2004-07-09 at 14:26, Vladimir Kondratiev wrote: > > Who marks the skb->priority? Is that the default mark as per TOS? > > I think the VLAN code marks it as well. > I don't care. It should not be driver's business. Actually, it is TOS. AFAIK, > application supposed to do setsockoption(SO_PRIORITY) on its socket so set > priority. That or if routed from another host, then TOS does get extracted and set to skb->priority > Agree about intelligence. Driver should serve link and MAC layer. But exactly > because link layer have different priorities, driver need several Tx queues. > It is stack's business to route packet to the proper queue. Driver should > deliver it using appropriate MAC layer priority. So far you have said there are two schedulers h/ware understands: strict priority(3 band strict priority is the deafult in Linux) and WRR. The qdisc level is already taken care of today. > Waiting. If no support will exist, it simply means we will be unable to use > QoS provided by modern 802.11. I think someone with motivation and hardware (such as you Vladimir ;->)should take the lead. I have offered to consult and review code. > Depending on market development, impact may > range from being slightly slower relating to Windows clients, to being almost > completely unable to communicate for traffic like VOIP. Later will be the > case if most access points will implement QoS as in TGE. > > I can now deliver packets accordingly to skb->priority, but if stack have > different idea for what is proper proportion between different sorts of > traffic, driver's Tx path will be flooded with low priority frames. I dont think so - as long as you map to a specific qdisc things should work fine. i.e the scheduling semantics will be taken good care of by the qdisc level. So lets separate the two levels, driver and qdisc level. I dont think they should be synchronized. In my opinion, the synchronization point is the configurator/operator/management s/ware of the box. > Situation is much worser for streams with admission control. I have no > mechanism to communicate with stack for such traffic establishment and tear > down. Let me make an interim suggestion: To illustrate i will assume 3 priorities with priority 1 higher than priority 3. Substitute with whatever driver does. Assuming the priorities will be reflected in the skb->priority. - Shut down device only when highest(1) priority ring is full. - if packets received for priority 2 and 3 and their respective rings are full, drop the packet in the driver and return a 0 i.e dont shut device. You can also do the following in the case of strict priority(caveat is reordering may happen): for each prio X try to stash on DMA ring of prio X. If full, try X+1, if full try X+2 etc. Thoughts? cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-12 12:18 ` jamal @ 2004-07-12 18:07 ` Vladimir Kondratiev 2004-07-13 2:26 ` jamal 0 siblings, 1 reply; 19+ messages in thread From: Vladimir Kondratiev @ 2004-07-12 18:07 UTC (permalink / raw) To: netdev, hadi; +Cc: Jeff Garzik, Kumar Gala -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Monday 12 July 2004 15:18, jamal wrote: > On Fri, 2004-07-09 at 14:26, Vladimir Kondratiev wrote: > > > Who marks the skb->priority? Is that the default mark as per TOS? > > > I think the VLAN code marks it as well. > > > > I don't care. It should not be driver's business. Actually, it is TOS. > > AFAIK, application supposed to do setsockoption(SO_PRIORITY) on its > > socket so set priority. > > That or if routed from another host, then TOS does get extracted and set > to skb->priority this is not very important. From one side, it seems like bug in routing code. - From another side, 802.11 was supposed for link ends only. It is not supposed to appear in the middle of routers chain. > > > Agree about intelligence. Driver should serve link and MAC layer. But > > exactly because link layer have different priorities, driver need several > > Tx queues. It is stack's business to route packet to the proper queue. > > Driver should deliver it using appropriate MAC layer priority. > > So far you have said there are two schedulers h/ware understands: strict > priority(3 band strict priority is the deafult in Linux) and WRR. > The qdisc level is already taken care of today. > > > Waiting. If no support will exist, it simply means we will be unable to > > use QoS provided by modern 802.11. > > I think someone with motivation and hardware (such as you > Vladimir ;->)should take the lead. I have offered to consult and review > code. You know: schedule, plan, other job to do, limited time... And, I don't feel myself enough educated in network stack internals. Now I think I can speak for the driver. This is what I am trying to do. But I started looking for qdiscs and other stuff, so may be eventually I will get there. > > > Depending on market development, impact may > > range from being slightly slower relating to Windows clients, to being > > almost completely unable to communicate for traffic like VOIP. Later will > > be the case if most access points will implement QoS as in TGE. > > > > I can now deliver packets accordingly to skb->priority, but if stack have > > different idea for what is proper proportion between different sorts of > > traffic, driver's Tx path will be flooded with low priority frames. > > I dont think so - as long as you map to a specific qdisc things should > work fine. i.e the scheduling semantics will be taken good care of by > the qdisc level. > So lets separate the two levels, driver and qdisc level. > I dont think they should be synchronized. In my opinion, the > synchronization point is the configurator/operator/management s/ware of > the box. QoS policies are dictated by access point, they are coming to the driver from the link side. And I see no way to let upper layers to know these policies. > > > Situation is much worser for streams with admission control. I have no > > mechanism to communicate with stack for such traffic establishment and > > tear down. > > Let me make an interim suggestion: > To illustrate i will assume 3 priorities with priority 1 higher than > priority 3. Substitute with whatever driver does. Assuming the > priorities will be reflected in the skb->priority. > > - Shut down device only when highest(1) priority ring is full. > - if packets received for priority 2 and 3 and their respective rings > are full, drop the packet in the driver and return a 0 i.e dont shut > device. Real situation: - - highest priority is VOIP (200 bytes each 20ms). With decent link, it will always pass. - - low priority is ftp bulk transfer. stack pushes more then driver can tx. I will silently drop 9 out of 10 packets. Not a good behavior. > > You can also do the following in the case of strict priority(caveat is > reordering may happen): > for each prio X try to stash on DMA ring of prio X. If full, try X+1, if > full try X+2 etc. forbidden by spec. I will be disconnected immediately. > > Thoughts? > > cheers, > jamal -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD4DBQFA8tNhqxdj7mhC6o0RAsKoAJdfe1cMHghBSDI8Jel9zYsdmP6kAJ0fshJw M3b1lsvT4zq3oRR5fveylg== =6FLN -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-12 18:07 ` Vladimir Kondratiev @ 2004-07-13 2:26 ` jamal 2004-07-13 2:36 ` jamal 0 siblings, 1 reply; 19+ messages in thread From: jamal @ 2004-07-13 2:26 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: netdev, Jeff Garzik, Kumar Gala On Mon, 2004-07-12 at 14:07, Vladimir Kondratiev wrote: > > That or if routed from another host, then TOS does get extracted and set > > to skb->priority > this is not very important. From one side, it seems like bug in routing code. > - From another side, 802.11 was supposed for link ends only. It is not supposed > to appear in the middle of routers chain. I dont see the bug - this is pretty standard. Actually there is one issue, now that i think of it. The way IEEE maps priority is the opposite of the way IETF does it ;-> If you have 8 priorities then priority 7 would be the highest in IEEE speak (i.e most important) but priority 0 would be the one considered most important for IEEE. so a strict TOS -> skb->priority wont work ;-> > > I dont think so - as long as you map to a specific qdisc things should > > work fine. i.e the scheduling semantics will be taken good care of by > > the qdisc level. > > So lets separate the two levels, driver and qdisc level. > > I dont think they should be synchronized. In my opinion, the > > synchronization point is the configurator/operator/management s/ware of > > the box. > QoS policies are dictated by access point, they are coming to the driver from > the link side. And I see no way to let upper layers to know these policies. Huh? Are these speacial L2 level frames which carry the policy? Sounds like the people doing this were on some cheap crack. Can you describe these frames a little more? > > - Shut down device only when highest(1) priority ring is full. > > - if packets received for priority 2 and 3 and their respective rings > > are full, drop the packet in the driver and return a 0 i.e dont shut > > device. > Real situation: > - - highest priority is VOIP (200 bytes each 20ms). With decent link, it will > always pass. > - - low priority is ftp bulk transfer. stack pushes more then driver can tx. I > will silently drop 9 out of 10 packets. Not a good behavior. Thats the definition of strict priority. In other words if theres VOIP packet you always send VOIP untuil theres no more VOIP. Only then you send ftp packets. On the case of WRR, you do give some break to ftp at some point. But this is not something you have to worry about once the qdiscs are configured properly. > > > > You can also do the following in the case of strict priority(caveat is > > reordering may happen): > > for each prio X try to stash on DMA ring of prio X. If full, try X+1, if > > full try X+2 etc. > forbidden by spec. I will be disconnected immediately. Ok. cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-13 2:26 ` jamal @ 2004-07-13 2:36 ` jamal 0 siblings, 0 replies; 19+ messages in thread From: jamal @ 2004-07-13 2:36 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: netdev, Jeff Garzik, Kumar Gala On Mon, 2004-07-12 at 22:26, jamal wrote: > If you have 8 priorities then priority 7 would be the highest in > IEEE speak (i.e most important) but priority 0 would be the one > considered most important for IEEE. that ^^^^ should be IETF. cheers, jamal ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: ethernet QoS support? 2004-07-09 7:02 ` Vladimir Kondratiev 2004-07-09 13:18 ` jamal @ 2004-07-09 15:46 ` Kumar Gala 1 sibling, 0 replies; 19+ messages in thread From: Kumar Gala @ 2004-07-09 15:46 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: hadi, Kumar Gala, netdev, Jeff Garzik On Jul 9, 2004, at 2:02 AM, Vladimir Kondratiev wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > I guess, Kumar is asking for support for several Tx queues with > different > priorities. One need to start/stop these queues separately. This is > dictated > by presense of different priorities on physical layer. > > Kumar, is it 802.11? WME or TGE? I'm not sure what WME or TGE stand for, we are looking at a gig-e controller. > > Vladimir. > > On Thursday 08 July 2004 23:00, jamal wrote: >> On Thu, 2004-07-08 at 15:01, Jeff Garzik wrote: >>> Kumar Gala wrote: >>>> Jeff, >>>> >>>> I was wondering if there was any support for handling ethernet >>>> devices >>>> that support multiple RX/TX queues to provide QoS. If so any >>>> pointers >>>> would be great. >>> >>> IIRC skb->priority provides priority bands for TX. Not sure about >>> RX... >>> jamal? >> >> The question was very ambigous. >> What is it that Kumar is looking for? Is it 802.1p, IP level etc? >> >> cheers, >> jamal > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.2.4 (GNU/Linux) > > iD8DBQFA7kMCqxdj7mhC6o0RAkeKAJ96kf49fbVy4qOjqqBBuNzmCteTrQCfU55Q > ke3RQ2prgMLEssvjeQIgegs= > =/KHu > -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2004-07-13 2:36 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-07-08 18:53 ethernet QoS support? Kumar Gala 2004-07-08 19:01 ` Jeff Garzik 2004-07-08 20:00 ` jamal 2004-07-09 7:02 ` Vladimir Kondratiev 2004-07-09 13:18 ` jamal 2004-07-09 13:41 ` Vladimir Kondratiev 2004-07-09 14:33 ` jamal 2004-07-09 18:26 ` Vladimir Kondratiev 2004-07-09 22:34 ` Sam Leffler 2004-07-10 8:58 ` Vladimir Kondratiev 2004-07-12 8:38 ` Glen Turner 2004-07-12 12:26 ` jamal 2004-07-12 18:17 ` Vladimir Kondratiev 2004-07-13 2:33 ` jamal 2004-07-12 12:18 ` jamal 2004-07-12 18:07 ` Vladimir Kondratiev 2004-07-13 2:26 ` jamal 2004-07-13 2:36 ` jamal 2004-07-09 15:46 ` Kumar Gala
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).