[icecast-dev] new features request

Mihai RUSU dizzy at roedu.net
Wed Feb 11 07:01:56 PST 2004



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi

I will need to find a solution for server side limit of clients bandwidth 
depending on their IPs (because we have very fast local connections 
with local ISPs and slow "external" connections with the rest of the 
Internet).

Initially I think I'll just start 2 icecast servers (one for "local" 
clients, one for "external" clients) on different ports, and use some DNAT 
trick to forward clients connecting to the same port, to different 
ports/icecast servers depending on their source IP address.

I was thinking a nicer solution would be if some of the icecast.xml conf 
params can be specified for "classes" of users, and each class to be 
configured with ACLs. Something like:

<class>
        <allow-from>1.2.3.4</allow-from>
        <allow-from>5.3.4.6</allow-from>
        ...
        <limits>
                <clients>20</clients>
                ...
        </limits>
</class>

If having <limits> "outside" any <class> then its equivalent as having 
this:

<class>
        <allow-from>0.0.0.0/0</allow-from>
        <limits>
                ...
        </limits>
</class>

To find the class matching a client icecast would have to check class ACLs 
in the order given in the config file. Unless <exclusive>1</exclusive> is 
given in a <class> , the client may belong to more than one class (but if 
exclusive is enabled for one class, and client matched that class then 
server should not continue to try next classes; of course if the client 
matched other classes before te first exclusive class match he belongs 
to those matched before too). Also, when a client belongs to more than one 
class, icecast2 checks limits in the order of matching classes, stopping 
on the first matching class on which client is outside limit.

I think a feature like this would offer admins great flexibility.

Another nice feature to add would be a "bandwidth" limit (so just a new 
<limit> type entry). One would say that is not needed because when serving 
fixed bitrate streams you can limit bandwidth by limiting clients but not 
all serve at fixed bitrate :)

If there is any interest in seeing this 2 features into icecast2 I will 
try to look into it (I have some C experience, I hope I can help).

Thanks!

- -- 
Mihai RUSU                                    Email: dizzy at roedu.net
GPG : http://dizzy.roedu.net/dizzy-gpg.txt    WWW: http://dizzy.roedu.net
                       "Linux is obsolete" -- AST
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQFAKkPmPZzOzrZY/1QRAkJfAKDEh+CxU2UMPAcWvcLUH+YPhbiRzgCdHcJf
eL28PI3IcWfoSZXsGlg6MvQ=
=/svp
-----END PGP SIGNATURE-----
--- >8 ----
List archives:  http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to 'icecast-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Icecast-dev mailing list