|
|
About
TODO
Blog
RSS
Old blog
Projects
Gallery
Notes
Thu, 22 Mar 2007
Multidimensional trie implementation for Linux sockets.
Ok, I've implemented Unix domain sockets (both bound and private namespace),
but kernel still does not boot - udevd does not create
appropriate device nodes in /dev, since it never receives
any single netlink message - just because I broke netlink broadcasting.
Netlink sockets were hashed y pid and protocol
values, but they were also placed into additional per-protocol broadcast
lists (mc_list). Since I removed appropriate entry from
socket structure, I need to remove appropriate list from netlink table,
so right now broadcasting does not work.
I need to think how to implement netlink broadcasting correctly without changes
in the socket structure.
Upd: I need to return one liststructure back to implement correct
traversal of all sockets - for example for /proc and netlink
statistics, I of course can use the same approach current code does -
for example TCP statistics code runs over the whole hash table and gets
info about each entry, so I can run over all trie too,
but I do not like such approach, so I will return one hlist_node
in sock_common structure (or will use list_head,
which is simple to operate), which will form a list of all sockets
for given protocol. Netlink in turn will has per-protocol lists
to implement broadcasting.
/devel/networking :: Link / Comments (0)
Please solve this captcha to be allowed to post (need to reload in a minute): 16 - 57
|