/*******************************************************************************

  OPENAIRINTERFACE 0/1/2/3 
  Copyright(c) 1999 - 2010 EURECOM

  This program is free software; you can redistribute it and/or modify it
  under the terms and conditions of the GNU General Public License,
  version 2, as published by the Free Software Foundation.

  This program is distributed in the hope it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  more details.

  You should have received a copy of the GNU General Public License along with
  this program; if not, write to the Free Software Foundation, Inc.,
  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.

  The full GNU General Public License is included in this distribution in
  the file called "COPYING".

  Contact Information:
  Openair Admin <openair_admin@eurecom.fr>
  Mailing List <openair_tech@eurecom.fr>
  Forums  http://forums.eurecom.fr/openairinterface
  Eurecom, 2229, route des cretes, 06560 Valbonne Sophia Antipolis, France

*******************************************************************************/
/*________________________OPENAIR/OPENAIR3/________________________

 File    : README
 Authors : OpenAir3
 Company : EURECOM
 Emails  : openair3@eurecom.fr
________________________________________________________________*/


-------------------------
Table of contents
-------------------------

The content of this README is the following: 

  1) What is this block about in OpenAirInterface
  2) Folders and files description
  3) Organization of the folders and their dependencies
  4) Hardware requirement and How to build PMIP6D
  5) How to run a simple experimentation

------------------------------------------------
1) What is this block about in OpenAirInterface ?
-----------------------------------------------
     
	Proxy Mobile IPv6 (or PMIPv6, or PMIP) is a network-based mobility management protocol standardized by IETF. It is a protocol for building a common and access technology independent of mobile core networks, accommodating various access technologies such as WiMAX, 3GPP, 3GPP2 and WLAN based access architectures. Proxy Mobile IPv6 is the only network-based mobility management protocol standardized by IETF.

-----------------------------------------
2) Folders and files description
-----------------------------------------

   File/Folder     		   Description
    -----------       		   ----------- 
    
    - freeradius-client-1.1.6/  	 contains files for the Radius client
		- examples							contains FreeRADIUS server configuration file examples
            	
	- mipv6-daemon-umip-0.4/	 contains files distributed with MIPL linux package 
		- extras/							 contains example configuration files and scripts for lauching executables
		- include/							 contains files distributed with MIPL linux package 
		- libmissing/  							 contains files distributed with MIPL linux package 
		- libnetlink/     						 contains files distributed with MIPL linux package
		- man/								 contains manual files of MIPL and PMIP
		- src/								 contains files distributed with MIPL linux package
		- src/pmip/							 contains PMIP files 
    

----------------------------------------------------
3) Organization of the folders and their dependencies
----------------------------------------------------

     The 2 folders have the following structures :

		- freeradius-client-1.1.6/	 	is the FreeRADIUS client v1.1.6 source code that we modified.

		- pmipv6-daemon-umip-0.4/  		is the Proxy Mobile IPv6 code built on top of UMIP 0.4

      PMIP6D is quite independent from the other OpenAirInterface blocks.
    
-----------------------------------------
  4) Hardware requirement and How to build PMIP6D
-----------------------------------------
	4.1) HARDWARE REQUIREMENT
 
		In our PMIP6D implementation, the Mobile Node's attachment and detachment phases are done at layer 2 using SYSLOG messages exchanged between the Access Point and the MAG.
		Thus, it's mandatory for your Access Point to act as SYSLOG client.  

	4.2) HOW TO BUILD PMIP6D

		WARNING: The PMIP6D has been developped and validated under Linux UBUNTU 10.04 LTS x86 distribution. 
			 We can not confirm it will work with other systems.
 
	  		 In this document, "$THEGOODPATH" indicates the directory path where you place the PMIP6D code. (we suggest you to place it there -> /usr/local/src/)			
	
		4.2.1) Installation of the required packages on MAG and LMA machines : 
			libpcap-dev / indent / bison / flex / iproute-dev / macchanger / libc6-dev / libssl-dev / autoconf / libtool / python-netaddr 
			Open a new shell and type :
				$ apt-get install libpcap-dev indent bison flex iproute-dev libc6-dev libssl-dev autoconf libtool macchanger python-netaddr

		4.2.2) Kernel recompilation
			PMIP6D does not require to modify/patch the kernel, however some features are by default disabled inside the official Ubuntu kernels and we need to enable them.
			Follow the "INSTALL.kernel" text file to know how to set up correctly your kernel. 
		
		4.2.3) Proxy Mobile-IPv6 Daemon and FreeRADIUS installation
			Follow the "INSTALL" text file to know how to build PMIP6D tool.
		
----------------------------------------------------------------
	5)  How to run a simple experimentation
----------------------------------------------------------------

    In order to create a PMIP domain composed of 3 nodes (1 LMA + 2 MAGS) (see the picture "$THEGOODPATH/pmipv6-daemon-umip-0.4/src/pmip/docs/images/PMIPv6_schema_example_1LMA_2MRs.jpg"):
	
	LMA, MAG1 and MAG2 are in the same network which has for IPv6 prefix 2001:100::/64
	With LMA: Ethernet1=2001:100::1  /  MAG1: Ethernet1=2001:100::2 & Ethernet2=2001:1::2  /  MAG2: Ethernet1=2001:100::3 & Ethernet2=2001:1::3

	On LMA execute ->  ./$THEGOODPATH/pmipv6-daemon-umip-0.4/extras/UMIP0.4_LMA_UBUNTU.10.04.py
	On MAG1 execute -> ./$THEGOODPATH/pmipv6-daemon-umip-0.4/extras/UMIP0.4_MAG1_UBUNTU.10.04.py
	On MAG2 execute -> ./$THEGOODPATH/pmipv6-daemon-umip-0.4/extras/UMIP0.4_MAG2_UBUNTU.10.04.py
