| To: | hadi@xxxxxxxxxx |
|---|---|
| Subject: | Re: Billing 3: WAS(Re: [PATCH 2/4] deferred drop, __parent workaround, reshape_fail , netdev@oss.sgi.com , |
| From: | sandr8 <sandr8_NOSPAM_@xxxxxxxxxxxx> |
| Date: | Mon, 23 Aug 2004 11:39:06 +0200 |
| Cc: | Harald Welte <laforge@xxxxxxxxxxxxx>, devik@xxxxxx, netdev@xxxxxxxxxxx, netfilter-devel@xxxxxxxxxxxxxxxxxxx |
| In-reply-to: | <1093191124.1043.206.camel@jzny.localdomain> |
| References: | <411C0FCE.9060906@crocetta.org> <1092401484.1043.30.camel@jzny.localdomain> <20040816072032.GH15418@sunbeam2> <1092661235.2874.71.camel@jzny.localdomain> <4120D068.2040608@crocetta.org> <1092743526.1038.47.camel@jzny.localdomain> <41220AEA.20409@crocetta.org> <1093191124.1043.206.camel@jzny.localdomain> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mozilla Thunderbird 0.7.3 (Windows/20040803) |
jamal wrote: On Tue, 2004-08-17 at 09:40, sandr8 wrote: imho, the point maybe is that a scheduler should work at layer 3, am i wrong? i mean: i made the same question to myself and answered that the right level should be the third... this would account for tcp retransmissions as well as forward error corrections packets added by some application on top of udp, or retrasmissions by applications on udp... or... whatever... maybe my reasoning is less foggy if i first answer to an other question: I think the issue starts with defining what resource is being accounted i would like to account for the number of bytes sent to the wire on behalf of each flow :) Haralds patch bills in that case as well for each retransmitted packet this seems not to be possible, afaik, with that patch i wrote. the only skbs that are freed are those that are internally allocated. and the only kfree_skb() that can happen on skbs that are enqueued in dev.c should be those in case od a TC_ACT_QUEUED or TC_ACT_STOLEN, where they should just decrement the user counter. i say "should" since this is the most reasonable assumption i managed to make, but this is your field and you definitely know it much better than me :) in that case, btw, dev.c doesn't get any drop return code... if a drop return code is given, the packet is not freed internally, but only "externally". (for the "where"... the question is open in "billing 1") where could a skb be freed then? [ i'm not insisting with that patch, i'm just trying to say that, if i don't rave, it should not be dangerous to do that after the enqueue()... then, it's just that for the moment i can't immagine a different way to do things in that place :) yes, there could be a slight variation with a skb_get() right before the enqueue and all the kfree_skb() at their place inside the code, but then somewhere we should always add a kfree_skb... ouch... and we would need a by ref skb anyway to get the packet that has been dropped and if it's not the same as the enqueued one also the enqueued one should pass through one more kfree_skb()... horrible, more complex and slower i'd say... ] would there be any magic to have some conntrack data per device i need to think thoroughly on it... depending on where that information is kept, the complexity of some operations can change a lot... and i should not only egoistically think to the operations i need but look at it from the outside to have a less partisan viewpoint on the problem and find the most generally good solution possible. what could be the "magic" to let theNo i think your idea is valuable. yeah, that could be the right compromise :) this is the case. i could do it on my own from inside my code, but then i wouldYou cant have too many locks and you cant have too few ;-> "pollute" the information seen from other parts of the kernel code and i would introduce a _new_ unfairness between those flows that pass though my qdisc and those that don't... to sum it up... it would be pretty unclean If it drops because they abused a bandwidth level, shouldnt you punishyou are thinking in that perspective because of tcp? as i said above, i would stop at layer 3... btw, if i don't misunderstand what you mean, i guess it's when tcp is retransmitting that that field should somehow be set... is it as feasible when we are not on an end-point as when we are an endpoint? btw, we should then do the same with the other protocols and, for example with udp, it would become application dependent... a suicide? it simply has a priority dequeue that is manained ordered on the attained service. sorry?? i'm lost... maybe there's something implied i can't get... do you agree it's not the same skb that will be re-billed afterwards? cheers, jamal ciao Alessandro :) |
| Previous by Date: | Re: Billing 1: WAS (Re: [PATCH 2/4] deferred drop, __parent workaround, reshape_fail , netdev@oss.sgi.com ,, sandr8 |
|---|---|
| Next by Date: | Re: Billing 3-1: WAS(Re: [PATCH 2/4] deferred drop, __parent workaround, reshape_fail , netdev@oss.sgi.com ,, jamal |
| Previous by Thread: | Billing 3: WAS(Re: [PATCH 2/4] deferred drop, __parent workaround, reshape_fail , netdev@oss.sgi.com ,, jamal |
| Next by Thread: | Re: Billing 3-1: WAS(Re: [PATCH 2/4] deferred drop, __parent workaround, reshape_fail , netdev@oss.sgi.com ,, jamal |
| Indexes: | [Date] [Thread] [Top] [All Lists] |