dnsproxy: Only one copy of the relevant buffers will be made to a TCP request
[framework/connectivity/connman.git] / README
diff --git a/README b/README
index 37130dd..6215e96 100644 (file)
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 Connection Manager
 ******************
 
-Copyright (C) 2007-2009  Intel Corporation. All rights reserved.
+Copyright (C) 2007-2012  Intel Corporation. All rights reserved.
 
 
 Functionality and features
@@ -10,18 +10,26 @@ Functionality and features
 The following features are built-in into Connection Manager:
        - Generic plugin infrastructure
        - Device and network abstraction (with basic storage support)
-       - IPv4, routing and DNS configuration
+       - IPv4, IPv4-LL (link-local) and DHCP
+       - IPv6, DHCPv6 and 6to4 tunnels
+       - Advanced routing and DNS configuration
+       - Built-in DNS proxy and intelligent caching
+       - Built-in WISPr hotspot logins and portal detection
+       - Time and timezone configuration (manual and automatic with NTP)
+       - Proxy handling (manual and automatic with WPAD)
+       - Tethering support (USB, Bluetooth and WiFi AP mode)
+       - Detailed statistics handling (home and roaming)
 
 Various plugins can be enabled for networking support:
        - Ethernet plugin
-       - WiFi plugin with WEP40/WEP128 and WPA/WPA2 (personal only) support
-       - Bluetooth plugin
+       - WiFi plugin with WEP40/WEP128 and WPA/WPA2 (personal and enterprise)
+       - Bluetooth plugin (using BlueZ)
+       - 2G/3G/4G plugin (using oFono)
 
 Also plugins with additional features are available:
-       - DHCP plugins (uDHCP and dhclient)
-       - Resolver plugins (resolvconf and DNS proxy)
-       - Loopback setup
-       - PolicyKit support
+       - Loopback interface setup
+       - PACrunner proxy handling
+       - PolicyKit authorization support
 
 
 Compilation and installation
@@ -31,9 +39,9 @@ In order to compile Connection Manager you need following software packages:
        - GCC compiler
        - GLib library
        - D-Bus library
-       - udev library (optional)
+       - IP-Tables library
+       - GnuTLS library (optional)
        - PolicyKit (optional)
-       - PPP support (optional)
 
 To configure run:
        ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
@@ -49,92 +57,108 @@ Configuration and options
 
 For a working system, certain configuration options need to be enabled:
 
-       --enable-ethernet
+       --disable-ethernet
 
-               Enable support for Ethernet network cards
+               Disable support for Ethernet network cards
 
-       --enable-wifi
+               By default Ethernet technology support is built-in and
+               enabled. This option can be used to build a small daemon
+               for a specific system if Ethernet support is not required.
 
-               Enable support for WiFi devices (requires wpa_supplicant)
+       --disable-wifi
 
+               Disable support for WiFi devices
 
-       --enable-bluetooth
+               By default WiFi technology support is built-in and
+               enabled. This option can be used to build a small daemon
+               for a specific system if WiFi support is not required.
 
-               Enable support for Bluetooth devices (requires BlueZ)
+               It is safe to build a daemon with WiFi support and no
+               running wpa_supplicant. The start of wpa_supplicant is
+               automatically detected and only a runtime dependency. It
+               is not needed to build ConnMan.
 
-       --enable-ppp
+       --disable-bluetooth
 
-               Enable PPP support for dialup connections (requires pppd)
+               Disable support for Bluetooth devices
 
-               The location of the pppd binary is auto-detected, but it
-               can be overwritten via --with-pppd=<path-to-binary>.
+               By default Bluetooth technology support is built-in and
+               enabled. This option can be used to build a small daemon
+               for a specific system if Bluetooth support is not required.
 
-       --enable-udhcp
+               It is safe to build a daemon with Bluetooth support and no
+               running bluetoothd. The start of bluetoothd is automatically
+               detected and only a runtime dependency. It is not needed to
+               build ConnMan.
 
-               Enable DHCP client support for BusyBox based systems
+       --disable-ofono
 
-               The location of the udhcpc binary is auto-detected, but it
-               can be overwritten via --with-udhcpc=<path-to-binary>.
+               Disable support for cellular 2G/3G/4G devices
 
-       --enable-dhclient
+               By default oFono technology support is built-in and
+               enabled. This option can be used to build a small daemon
+               for a specific system where oFono is not used.
 
-               Enable DHCP client support for ISC dhclient based systems
+               It is safe to build a daemon with oFono support and no
+               running ofonod. That start of ofonod is automatically
+               detected and only a runtime dependency. It is not needed to
+               build ConnMan.
 
-               The location of the dhclient binary is auto-detected, but it
-               can be overwritten via --with-dhclient=<path-to-binary>.
+       --disable-dundee
 
-               At least one DHCP client option should be selected. It is
-               possible to select both and then uDHCP will be tried first
-               before falling back to dhclient.
+               Disable support for Bluetooth DUN devices
 
-       --enable-dnsproxy
+               By default Bluetooth DUN technology (dundee) support is
+               built-in and enabled. This option can be used to build a
+               small daemon for a specific system where dundee is not used.
 
-               Enable DNS proxy support for /etc/resolv.conf abstraction
+               It is safe to build a daemon with dundee support and no
+               running dundee. That start of dundee is automatically
+               detected and only a runtime dependency. It is not needed to
+               build ConnMan.
 
-               The best solution for multiple connections and proper DNS
-               handling is a DNS proxy server. This binds a DNS proxy
-               server to port 53 on the loopback interface (127.0.0.1).
+       --disable-pacrunner
 
-               The /etc/resolv.conf file needs a "nameserver 127.0.0.1"
-               entry, but can now set the immutable bit or be on a read-only
-               filesystem. No further modification to that file will be made.
+               Disable support for PACrunner proxy handling
 
-               It is important that this is not used together with other
-               DNS proxy solution like dnsmasq.
+               By default PACrunner support is built-in and enabled. This
+               option can be used to build a small daemon for a specific
+               system where PACrunner is not used.
 
-       --enable-resolvconf
+               It is safe to build a daemon with PACrunner support and no
+               pacrunner daemon. It will detect and start a PACrunner
+               process if needed at runtime. The presence is not needed
+               to build ConnMan.
 
-               Enable resolvconf support for Debian/Ubuntu based systems
+       --disable-loopback
 
-               The resolvconf package from Debian can be used to handle
-               configuration of the /etc/resolv.conf file.
-
-               It is safe to select this option even when resolvconf is not
-               installed. A missing resolvconf will be detected and in that
-               case it falls back to modifying /etc/resolv.conf directly.
-
-               The location of the resolvconf binary is auto-detected, but it
-               can be overwritten via --with-resolvconf=<path-to-binary>.
-
-       --enable-loopback
-
-               Enable setup of loopback device
+               Disable setup of loopback device
 
                For distributions with a really minimal init system and no
                networking scripts this can take care of setting up the
                loopback device and enabling it.
 
-               It is safe to select this option even if networking scripts
-               are in place. It detects an already configured loopback
-               device and leaves it as it is.
+               It is safe to leave this selected even if networking
+               scripts are in place. It detects an already configured
+               loopback device and leaves it as it is.
 
-       --enable-udev
+       --disable-wispr
 
-               Enable device detection support via udev
+               Disable support for WISPr hotspot logins
 
-               Network devices are by default detected via the builtin RTNL
-               functionality. This allows to detect TTY based modem devices
-               via udev.
+               For systems with really minimal memory requirements, this
+               will disable the support for WISPr hotspot logins. The code
+               for WISPr will be still compiled into the daemon, but its
+               requirement on GnuTLS for secure connections will be lifted.
+
+               The missing GnuTLS support shrinks the memory requirements
+               by about 30% and for systems that are more stationary and do
+               not log into hotspots this might be a better trade off.
+
+               Disabling WISPr support is not disabling the portal detection
+               support. A portal will still be detected, but instead of being
+               asked for login credentials, the request for a browser session
+               will be made through the agent.
 
        --enable-polkit
 
@@ -143,3 +167,66 @@ For a working system, certain configuration options need to be enabled:
                This allows to check every D-Bus access against a security
                policy and so restrict access to certain functionality.
 
+       --enable-nmcompat
+
+               Enable support for NetworkManager compatibility interfaces
+
+               This allows to expose a minimal set of NetworkManager
+               interfaces. It is useful for systems with applications
+               written to use NetworkManager to detect online/offline
+               status and have not yet been converted to use ConnMan.
+
+
+wpa_supplicant configuration
+============================
+
+In order to get wpa_supplicant and Connection Manager working properly
+together you should edit wpa_supplicant .config file and set:
+
+CONFIG_WPS=y
+CONFIG_AP=y
+CONFIG_CTRL_IFACE_DBUS_NEW=y
+
+and, add:
+
+CONFIG_BGSCAN_SIMPLE=y
+
+This last option will enable the support of background scanning while being
+connected, which is necessary when roaming on wifi.
+
+It is recommended to use wpa_supplicant 0.8.x or 1.x or later.
+
+
+VPN
+===
+
+In order to compile pptp and l2tp VPN plugins, you need ppp development
+package.
+
+To run l2tp you will need
+       - xl2tpd, http://www.xelerance.com/services/software/xl2tpd
+
+To run pptp you will need
+       - pptp client, http://pptpclient.sourceforge.net
+
+Both l2tp and pptp also need pppd.
+
+
+OpenVPN
+=======
+
+Up to version 2.2 of OpenVPN, pushing additional routes from the
+server will not always work. Some of the symptons are that additional
+routes will not be set by ConnMan if the uplink is a cellular
+network. While the same setup works well for a WiFi or ethernet
+uplink.
+
+
+Information
+===========
+
+Mailing list:
+       connman@connman.net
+
+For additional information about the project visit ConnMan web site:
+       http://www.connman.net