Hello,
I couldn't get the message with a final decision regarding the library
naming scheme.
Andrei used libsr_xyz at some point, I also like this one. Henning
committed directly lib/trie in his branch.
I will look soon to make the library out of mi, thinking of: libsr_kmi
or libsr_mi, depending or not whether we want to mark the origin.
So, two things to decide:
- do we stick to libsr_ as prefix to all new libraries included in srouter?
- do we want to mark the origin of the library? Short term, might be
good as pattern to know what is required for k version of the module.
This can be fixed with good documentation. Long term the name might look
strange.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com
Hello,
I think we need to decide about AVPs. Although not deeply investigated,
ser seems to have couple of AVPs lists. In kamailio/openser it is one list.
Can a ser developer describe a bit the AVP implementation as it is now
there?
In openser/kamailio we have more or less same architecture as for ser
0.9.6 with couple extensions, but I will detail here so we can have full
picture:
- avps are kept in shared memory
- they are bound to each sip message and moved to transaction if that
message create a transaction
- avp can have two types of names
- integer id, referred as $avp(i:number)
- string id, referred as $avp(s:string)
- there can be aliases for avp names, defined as "alias=[is]:id", so the
script writer can use $avp(alias)
- a value of an avp can be either integer or string
- not related to avp core part, but important to mention here -- tm,
controlled by a parameter, can make the avps from transaction (request)
available to onreply_route.
Also, just to have in mind, for the future we got into discussion:
- moving from linked list to a structure that allows faster search
(e.g., hash table) as number of used avps can be big some times
- adding support for structure-like values (the value to be another list
of (name,value) pairs). A typical use case is serial forking, where one
needs to store data in avps. If for one destination an avp is missing,
things get screwed. Example:
$avp(uri) = {A, B, C}
$avp(RPID) = {X, not needed, Y}
Internally will look like:
$avp(uri) = {A, B, C}
$avp(RPID) = {X, Y}
So actually, Y will be used for destination B. Workarounds are possible,
or course, but maybe we can do it nicer. so it will be like:
$avp(dst) = {{u=A,r=Y}, {u=B},{u=C,r=Y}}
A possibility to specify the access is $avp(d:dst=>u)
Finally, as pointed in another email, it is about making possible to
hold "value null" (a mark/flag) and differentiate that from "undefined"
(not existing).
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com
Module: sip-router
Branch: ser_core_cvs
Commit: 67e3e42ea4ad48ec225233a32e0c8c36fdba7bc4
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=67e3e42…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Tue Dec 16 14:30:48 2008 +0000
doc: tcp tunning update
- update with epoll tunning for kernels >= 2.6.27.8
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
---
doc/tcp_tunning.txt | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/doc/tcp_tunning.txt b/doc/tcp_tunning.txt
index 975e793..b383a42 100644
--- a/doc/tcp_tunning.txt
+++ b/doc/tcp_tunning.txt
@@ -55,6 +55,10 @@ fs.file-max - maximum number of fds that will be allocated
1.5 other sysctl that might affect tcp connection rate or the maximum number
of open connections
+fs.epoll.max_user_instances - maximum number of devices - per user (2.6.27.8+)
+fs.epoll.max_user_watches - maximum number of "watched" fds - per user
+ (2.6.27.8+)
+
iptables - remove the ip_conntrack module (it limits the maximum tcp
connections, adds extra overhead (slow)). It's probably better to remove
all the iptables modules.