Zbr's days.
March
Sun Mon Tue Wed Thu Fri Sat
       
22
2007
Months
Mar

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

Comments are closed for this story.