|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Slava Astashonok 2:5020/400 09 Jun 2004 17:14:01 To : Andrew V Scherbacov Subject : Re: freeradius + pptpd + учет трафика -------------------------------------------------------------------------------- Andrew V Scherbacov wrote: > Привет, Slava! > > Однажды Wednesday June 09 2004 в 13:57, некто Slava Astashonok писал Andrew V > Scherbacov: > > >> скорее я напишу свой демон вместо радиуса, тем более, что задача, > >> которую сейчас у меня решает радиус слишком для него элементарна :-) > > SA> Hу, если наличе radius'а непринципиально, то всё значительно > SA> облегчается. В ip-{up,down} можно напихать каких угодно считалок > SA> трафика. > > это понятно, но радиус ясен и понятен и дает простор для масштабирования. вот > и неохота от него уходить прямо так сразу. :-) я вот тут http://shs.sumy.ua/ > интересную вещь увидел, практически то, что мне надо, но под фрю :-( можно ли > так же извратиться над линуксячим ррр - непонятно.. Hа сколько я могу судить, без значительных изменений в ядре такого не сделаешь. А вообще, если так припекло, то вот quick and dirty патч к ppp_generic.c от 2.4.26. В результате будут считаться только пакеты удовлетворяющие active-filter. CONFIG_PPP_FILTER, конечно, должно быть включено в ядре. - --- ppp_generic.c.orig 2003-08-25 15:44:42.000000000 +0400 +++ ppp_generic.c 2004-06-09 17:07:47.000000000 +0400 @@ -975,8 +975,11 @@ /* if this packet passes the active filter, record the time */ if (!(ppp->active_filter.filter && sk_run_filter(skb, ppp->active_filter.filter, - ppp->active_filter.len) == 0)) + ppp->active_filter.len) == 0)) { ppp->last_xmit = jiffies; + ++ppp->stats.tx_packets; + ppp->stats.tx_bytes += skb->len - 2; + } skb_pull(skb, 2); #else /* for data packets, record the time */ @@ -984,8 +987,10 @@ #endif /* CONFIG_PPP_FILTER */ } +#ifndef CONFIG_PPP_FILTER ++ppp->stats.tx_packets; ppp->stats.tx_bytes += skb->len - 2; +#endif switch (proto) { case PPP_IP: @@ -1474,8 +1479,10 @@ break; } +#ifndef CONFIG_PPP_FILTER ++ppp->stats.rx_packets; ppp->stats.rx_bytes += skb->len - 2; +#endif npi = proto_to_npindex(proto); if (npi < 0) { @@ -1506,8 +1513,11 @@ } if (!(ppp->active_filter.filter && sk_run_filter(skb, ppp->active_filter.filter, - ppp->active_filter.len) == 0)) + ppp->active_filter.len) == 0)) { ppp->last_recv = jiffies; + ++ppp->stats.rx_packets; + ppp->stats.rx_bytes += skb->len - 2; + } skb_pull(skb, 2); #else ppp->last_recv = jiffies; -- A lot of people are afraid of heights. Not me. I'm afraid of widths. -- Steven Wright --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7394a9cf77d8.html, оценка из 5, голосов 10
|