The Source code for the Cellular IP v1.0 is now available.

 Click here to download the source code distribution 

1. Hardware and Software
2. Code at a Glance

3. Installing Cellular IP
4. What else do I need to know?
5.
Running Mobile IP with Cellular IP
6. Download Area

Frequently Asked Questions

1. Hardware and Software

The hardware requirements for running Cellular IP are as follows.

PCs and laptops/mini-laptops: The following type of computers are required: at least two or more pentium PCs configured to operate as base stations, one pentium PC configured to operate as a gateway preferably with a clock speed higher or equal to 200 MHz; and one notebook computer/ palmtop (e.g., Librettos) to run the mobile host module.

Wireless Adapter Cards: Currently we support the following  air interface cards: high speed WaveLan and Aironet. Please use a WaveLan/Aironet PCMCIA card for mobile host and waveLan/Aironet ISA(PCI) cards for base stations. The WaveLan and Aironet cards are 802.11 compatible but cannot talk to each other!. So use  the same type of cards for for your testbed. You can download device drivers that we have written to support these cards running on FreeBSD 3.2.

Before attempting to run and test Cellular IP, you will need to configure your testbed accordingly. An example of an experimental environment is given in the overview section of this web site. Here is  more information about hardware setup

Once the basic hardware is set up you need to configure the network interface cards to communicate with each other. For shared Ethernet network setup, all wired network card should be configured by typing following commands 

ifconfig interface_name ip_address netmask 0x******** up

The netmask depends on the your specific hardware setup.

route add default router_ip

For wireless network setup you have to give IP address and netmask but you don't need to set the default router. Setting up the default router will be done automatically when mobile host detects the beacon signal sent from the base station. For dedicated Ethernet network setup, you should follow the same procedure. Note that in the case of wired network cards (e.g., used for base stations) the default router does not need to be setup.

Make sure you meet the hardware requirements listed above and the software requirements listed below.

Operating Systems: PCs and notebooks should run FreeBSD 3.2-release Version. We do have Windows/NT but are not releasing that at this time.

Programming Languages: To compile the Cellular IP software suite for base station and gateway modules you need standard cc or gcc compilers. In addition, to execute the mobile host module you need Tcl\TK 8.1.

Additional Software Packages (Optional): The Cellular IP protocol operates transparently with respect to all application level software. You can use any Internet app to test the protocol and testbed config. Using a web browser is one of the simple examples. If you want to test more dynamic applications you can use vic for networked video and vat/speakFreely for networked audio; these are all available from the FreeBSD web site (http://www.freebsd.org).  
    

2. Code at a Glance    

The Cellular IP tar file consist of several c source code and configuration files. These files can be configured to form gateways, base stations and mobile stations. Each mobile host supports a simple management tool (written in tck/tk) that provides status. The following table provides a summary of the source code distribution.
Optional Mobile IP foreign agent code is provided for those interested in interworking Cellular IP and Mobile IP.

file name

type

description

executable

cipnode.c c code running on the gateway of CIP and base station cipnode
cipnode.conf configuration configuration file for cipnode  
cipmobile.c c code running on the mobile host cipmobile
cipmobile.conf   configuration file for cipmobile  
cip tcl/tk code graphic user interface for cipmobile cip
cip_pcap.c c code packet-capture module  
Advertisement.c c code Mobile IP FA advertisement  
CheckandDecap.c c code Mobile IP FA
Decapsulation module
 
RegisterCenter.c c code Mobile IP FA  

3. Installing Cellular IP

Before trying to install Cellular IP make sure that the device drivers for the wireless interface has been installed correctly. Now follow the the 6 step procedure to build the Cellular IP system:

    1) Once you have downloaded the cellularip.tar.gz file. Please         uncompress and untar the gzip file:

                    tar xvfz cellularip.tar.gz

    A subdirectory called dist will include the following source code         files:

    ./cip-1.0/etc/pcap-bpf.c
    ./cip-1.0/etc/Makefile
    ./cip-1.0/node/cipmobile.c
    ./cip-1.0/node/cipmobile.conf
    ./cip-1.0/node/cipmobile.h
    ./cip-1.0/node/cipnode.c
    ./cip-1.0/node/cipnode.conf
    ./cip-1.0/node/cipnode.h
    ./cip-1.0/node/node/Advertisement.c
    ./cip-1.0/node/CheckandDecap.c
    ./cip-1.0/node/RegisterCenter.c
    ./cip-1.0/node/cip
    ./cip-1.0/node/cip_pcap.h

   
./cip-1.0/node/Makefile

    2) Edit the bpf_open() function of ./cip-1.1/etc/pcap-bpf.c file         and change

    fd = open(device, O_WRONLY)

    to

    fd = open(device, O_RDWR)

   and then compile the directory.

    The pcap library is used to read and write packets to the network.

    3) If you do not wish to test the Cellular IP/ Mobile IP interworking feature simply remove the "MOBILE_IP" tag in the Makefile.

    4) Depending on what kind of wireless interface is used modify the compiler tag in Makefile as follows:

    ${CC} ${CFLAG} -c cipmobile.c -DWICACHE     /* wavelan is used in mobile host */
    ${CC} ${CFLAG} -c cipmobile.c -DANCACHE     /* aironet is used in mobile host */

    Now compile.

    Please note that the wireless interface for mobile host and base        station should be same type.  Aironet card *can not* talk  to          wavelan cards.


    5) cipnode.conf is the configuration file that needs to be modified  to reflect the hardware configuration, For example if cipnode is used as gateway here is a sample cipnode.conf file that configures  the following Cellular IP testbed:

Figure 1. Shared Network Setup

Note that the interface name for each mobile host does not  have to follow Figure 1.

Here is the gateway config file.

%%%%%%%%%%%%% gateway configuration file%%%%%%%%%%%

GW: YES         % if this is gateway it is Yes otherwise NO

IF YES, default router's IP address: (wire, ep0, 128.59.68.1)
% basic format is (medium, interface of local machine, ip address of remote machine)
% if medium is wired network: wire otherwise: wireless
% if cellularip protocol used in dedicated ethernet 
% ep0 is the interface name which is directly attached to default router of
% the network. 

IF NO, neighbor, uplink direction:  
% this is not used in Gateway 

leaf neighbours(s): (wire, ep0, 128.59.68.251), (wire, ep0, 128.59.68.252)
% same format as above 
% these are for the leaf neighbours if it is on shared ethernet

paging cache:             YES                 % if Paging Cache is available 


If yes then size: 0                             % in packets
route-timeout: 3000                          % timeout value in route-cache in milliseconds
paging-timeout: 30000                       % timeout value in page-cache in milliseconds

max number of mobiles in cache: 100   % maximum # of mobile that node handle
max number of node interfaces:  10     % number of interface of machine
GW IP address: 128.59.68.250             % ip address of cellular IP gateway

If the cipnode is used as a base station here is a sample cipnode.conf file that you can modify. Let's say we are configuring base station 1 for example:

%%%%%%%%%%%%% gateway configuration file%%%%%%%%%%%

GW: NO % this is not gateway

IF YES, default router's IP address:       % not used in base station

IF NO, neighbor, uplink direction: (wire,ep1, 128.59.68.250) 
%(medium, interface name, dstIP)

leaf neighbours(s): (wireless, wl0)        % if leaf is wireless we assume that it is used as
                                                      % as base station so it doesn't know the
                                                      % corresponding mobile host's ip address in advance.

paging cache:                 YES             % if Paging Cache is available

route-timeout: 3000                           % in milliseconds
paging-timeout: 30000                        % in milliseconds
max number of mobiles in cache: 100
max number of node interfaces: 10
GW IP address: 128.59.68.250 

%%%%%%%%%%%%% End of gateway configuration file%%%%%%%%%%%

You can apply the same procedure when configuration base station 2.

In case you are using a dedicated link here is an example for the following hardware setup shown in Figure 2: 



Figure 2. Dedicated Network Setup

The gateway configuration is as follows:


leaf neighbours(s): (wire, ep1, 128.59.69.253), (wire, ep2, 128.59.68.254)


Base station 1 and  2 use configuration:

 IF NO, neighbor, uplink direction: (wire,ep2, 128.59.68.251)

The mobile host's cipmobile.conf:

wireless interface: wi3               %wireless interface name
mobile's IP address: 128.59.69.71
air interface name: mobile-air
route-update-time: 100              %in milliseconds
paging-upate-time: 10000           %in milliseconds
acitve-state-timeout: 5000         %in milliseconds
handoff: 0  
% if it is automatic in regular time interval: 0
% or based on SNR measured with beacon: 1

    6)  Copy executable code (cipnode and cipnode.conf)  to each machine once the configuration phase is complete.

To run a gateway or base station module type. 

./cipnode

For a mobile host copy the cipmobile , cip and cipmobile.conf to mobile host. Please make sure that you have tcl/tk 8.1 running on your mobile host before proceeding. Please enable the  mobile host system to detect beacon signal from the base station. This can be done as follows: 

sysctl -w machdep.an_cache_iponly=0  /* if you use aironet card */
sysctl -w machdep.wi_cache_iponly=0  /* if you use wavelan card */


To run mobile station simply type:

./cip 

cip is a simple tcl/tk program which shows the current status of mobile host. 

4. What else do I need to know?

If you are not using the Mobile IP with Cellular IP there is one important thing to do in the router which Cellular IP gateway is attached to. The router should be configured to forward all the packets destined to mobile host (e.g., 128.59.69.71) to the Cellular IP gateway. Please check with your system administrator to do this.

If you are using Mobile IP you do not need to do this. The mobile host's Home Agent will forward all packets to its Foreign Agent which is co-located with Cellular IP gateway.

5. Running Mobile IP with Cellular IP

Since the Mobile IP source code used in our testbed is copy right protected we can not distribute it. However, you can download any Mobile IP code for use. We have provided the source for the Foreign Agent that has to interact with Cellular IP protocol.
 
1) Download and install any standard implementation of
    Mobile IP (in compliance with RFC 2002) from
    
    http://www.monarch.cs.cmu.edu/mobile_ipv4.html
    http://www.cs.pdx.edu/research/SMN/index.html
    http://mip.ee.nus.edu.sg/
    http://anchor.cs.binghamton.edu/~mobileip/
    http://playground.Sun.COM/pub/mobile-ip/

2) Configure and run the Mobile IP according to instructions
    from the documentations of downloaded implementation.

3) Enable Mobile IP support in Cellular IP source code by adding

    ${CC} ${CFLAG} -c cipnode.c 
   
to 
    ${CC} ${CFLAG} -c cipnode.c -DMOBILE_IP

    to the Makefile then recompile it. 

    Note that Cellular IP gateway will
    simulates a standard Foreign Agent in Mobile IP.  

    We can provide addition help for interworking in need be

6. Download Area

Before downloading Cellular IP, please read the following:

This is unpublished proprietary software developed as part of the COMET Group, Center for Telecommunications Research (CTR) at Columbia University. This software is to be used for research and exploratory development purposes only; it may not be used for or incorporated in commercial products or services without the prior written permission of the CTR.

All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the COMET Group, Center for Telecommunications Research at Columbia University.

Software and Information furnished in this page is believed to be accurate and reliable. It is distributed as is, with absolutely no warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability of fitness for a particular purpose. The entire risk as to the quality and performance of the programs is with you. Should the programs prove defective, or cause any damage, CTR assumes no responsibility to that cost or damage. CTR also assumes no responsibility for any infringement of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any intellectual property rights. Software and Information is subject to change without notice.

Please submit the following form, before downloading the source code
First Name
Last Name
email 

 Form or 
   

Copyright© Comet Group in Columbia University 1999
maintained by Sanghyo