User Tools

Site Tools


doc:techref:netifd

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:techref:netifd [2013/07/14 10:50]
lorema
doc:techref:netifd [2014/04/28 12:12] (current)
g10h4ck
Line 1: Line 1:
 ====== netifd (Network Interface Daemon) – Technical Reference ====== ====== netifd (Network Interface Daemon) – Technical Reference ======
  
-  * [[http://nbd.name/gitweb.cgi?p=luci2/​netifd.git;​a=summary|Project'​s git]]+  * [[http://git.openwrt.org/?p=project/​netifd.git;​a=summary|Project'​s git]]
   * 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://​git.openwrt.org/?​p=project/​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. 
  
doc/techref/netifd.1373791837.txt.bz2 · Last modified: 2013/07/14 10:50 by lorema