diff options
Diffstat (limited to 'libnl_2/README')
-rw-r--r-- | libnl_2/README | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/libnl_2/README b/libnl_2/README deleted file mode 100644 index 14db6db..0000000 --- a/libnl_2/README +++ /dev/null @@ -1,88 +0,0 @@ -Netlink Protocol Library - -This library is a clean room re-implementation of libnl 2.0 and -re-licensed under Apache 2.0. It was developed primarily to support -wpa_supplicant. However, with additional development can be extended -to support other netlink applications. - -Netlink Protocol Format (RFC3549) - -+-----------------+-+-------------------+-+ -|Netlink Message |P| Generic Netlink |P| -| Header |A| Message Header |A| -|(struct nlmsghdr)|D|(struct genlmsghdr)|D| -+-----------------+-+-------------------+-+-------------+ -|len:4|type:2|flags:2|seq:4 pid:4|cmd:1|ver:1|reserved:2| -+--------------------------------+----------------------+ -+-----------------+-+-----------------+-+-----------------+-+-----------------+-+---+ -|Netlink Attribute|P|Netlink Attribute|P|Netlink Attribute|P|Netlink Attribute|P|...| -| #0 Header |A| #0 Payload |A| #1 Header |A| #1 Payload |A| | -| (struct nlattr) |D| (void) |D| (struct nlattr) |D| (void) |D| | -+-----------------+-+-----------------+-+-----------------+-+-----------------+-+---+ -|len:2(==4+payload)|type:2|payload|pad| -+-------------------------+-------+---+ - -NETLINK OVERVIEW - -* Each netlink message consists of a bitstream with a netlink header. -* After this header a second header *can* be used specific to the netlink - family in use. This library was tested using the generic netlink - protocol defined by struct genlmsghdr to support nl80211. -* After the header(s) netlink attributes can be appended to the message - which hold can hold basic types such as unsigned integers and strings. -* Attributes can also be nested. This is accomplished by calling "nla_nest_start" - which creates an empty attribute with nest attributes as its payload. Then to - close the nest, "nla_nest_end" is called. -* All data structures in this implementation are byte-aligned (Currently 4 bytes). -* Acknowledgements (ACKs) are sent as NLMSG_ERROR netlink message types (0x2) and - have an error value of 0. - -KNOWN ISSUES - - GENERAL - * Not tested for thread safety - - Android.mk - * No dynamic library because of netlink cache not implemented and - not tested for thread safety - - attr.c - * nla_parse - does not use nla_policy argument - - cache.c - * netlink cache not implemented and only supports one netlink family id - which is stored in the nl_cache pointer instead of an actual cache - - netlink.c - * nl_recvmsgs - does not support nl_cb_overwrite_recv() - * nl_recv - sets/unsets asynchronous socket flag - -SOURCE FILES - -* Android.mk - Android makefile -* README - This file -* attr.c - Netlink attributes -* cache.c - Netlink cache -* genl/family.c - Generic netlink family id -* genl/genl.c - Generic netlink -* handlers.c - Netlink callbacks -* msg.c - Netlink messages construction -* netlink.c - Netlink socket communication -* object.c - libnl object wrapper -* socket.c - Netlink kernel socket utils - -IMPORTANT HEADER FILES - NOTE: These are based on the the origin GPL libnl headers - -* netlink-types.h - Contains many important structs for libnl - to represent netlink objects -* netlink/netlink-kernel.h - Netlink kernel headers and field constants. -* netlink/msg.h - macros for iterating over netlink messages -* netlink/attr.h - netlink attribute constants, iteration macros and setters - -REFERENCES - -* nl80211.h -* netlink_types.h -* $LINUX_KERNEL/net/wireless/nl80211.c -* http://www.infradead.org/~tgr/libnl/doc-3.0/index.html -* http://www.netfilter.org/projects/libmnl/doxygen/index.html |