Differences

This shows you the differences between two versions of the page.

doc:techref:netifd [2013/07/14 10:50]
lorema
doc:techref:netifd [2013/08/06 15:00] (current)
lorema
Line 4: Line 4:
  * netifd is available in OpenWrt since [[https://dev.openwrt.org/changeset/28499|R28499 (trunk)]] and published under the GPLv2.   * netifd is available in OpenWrt since [[https://dev.openwrt.org/changeset/28499|R28499 (trunk)]] and published under the GPLv2.
  * [[https://dev.openwrt.org/search?changeset=on&milestone=on&wiki=on&q=netifd&page=1&noquickjump=1|commits to OpenWrt trunk regarding netifd]]   * [[https://dev.openwrt.org/search?changeset=on&milestone=on&wiki=on&q=netifd&page=1&noquickjump=1|commits to OpenWrt trunk regarding netifd]]
 +  * [[http://nbd.name/gitweb.cgi?p=luci2/netifd.git;a=blob;f=DESIGN|Design of netifd]]
==== What is netifd? ==== ==== What is netifd? ====
Line 32: Line 33:
between interfaces properly - and of course all that without adding unnecessary bloat. AFAIK there are no alternatives to netifd, e.g. [[https://connman.net/|connman]] seems to be centered around one specifific use case only: having a mobile device access the internet through multiple connections. between interfaces properly - and of course all that without adding unnecessary bloat. AFAIK there are no alternatives to netifd, e.g. [[https://connman.net/|connman]] seems to be centered around one specifific use case only: having a mobile device access the internet through multiple connections.
-==== Dependencies of netifd ==== +===== OpenWrt – operating system architecture ===== 
-  * ''[[http://nbd.name/gitweb.cgi?p=luci2/libubox.git;a=summary|libubox]]'' (~ 12KiB) is a general purpose library which provides things like an event loop, binary blob message formatting and handling, the Linux linked list implementation, and some [[wp>JSON|JSON (JavaScript Object Notation)]] helpers. The functions in ''libubox'' are used to write the other software in [[http://luci.subsignal.org/trac/browser/luci2|luci2]], like e.g. ubus +{{page>doc:techref:architecture&;noheader&nofooter}}
-  * ''[[http://nbd.name/gitweb.cgi?p=luci2/ubus.git;a=summary|ubus]]'' (~ 13KiB) is an RPC daemon similar to dbus but with a much friendlier C API +
-  * [[http://oss.metaparadigm.com/json-c/|json-c]] (~ 6KiB) required only for the CLI+
-Whereas desktop distributions use [[wp>GLib|glib]] and [[wp>D-Bus|dbus]] (and [[wp>udev]]) OpenWrt uses [[http://nbd.name/gitweb.cgi?p=luci2/libubox.git;a=summary|libubox]] and [[http://nbd.name/gitweb.cgi?p=luci2/ubus.git;a=summary|ubus]] (and [[https://dev.openwrt.org/browser/trunk/package/hotplug2|hotplug2]]). 
-This provides some pretty awesome functionality without requiring huge libraries with huge dependencies (*cough* glib). 
- 
-^ Desktop Linux Distributions  ^ OpenWrt ^^ 
-^ :::                          ^ until ...  ^ since ... ^ 
-| [[wp>GLib|glib]]            | libubox || 
-| [[wp>D-Bus|dbus]]            | ubus    || 
-| [[wp>udev]]                  | hotplug2 || 
-| [[wp>initd]]/[[wp>systemd]]  | [[busybox-initd]] | [[doc:techref:procd]] | 
- 
-==== What's the difference between ubus and dbus? ==== 
-''dbus'' is bloated, its C API is very annoying to use and requires writing large amounts of boilerplate code. In fact, the pure C API is so annoying that its own API documentation states: "If you use this low-level API directly, you're signing up for some pain." 
- 
-''ubus'' is tiny and has the advantage of being easy to use from regular C code, as well as automatically making all exported API functionality also available to shell scripts with no extra effort. 

Back to top

doc/techref/netifd.1373791837.txt.bz2 · Last modified: 2013/07/14 10:50 by lorema