Virtualization in Wireless Networks

Yijian Li, liyijian (at) (A paper written under the guidance of Prof. Raj Jain) DownloadPDF


Virtualization has been extended from wired to wireless networks. It improves efficiency and utilization and enables customized service and multi-tenancy. New architectures involving virtualization have been proposed in the major wireless domains such as WiFi, cellular network and wireless application in Internet of things (IoT). Additionally, the use of Software Defined Radio (SDR) gives more and better options for virtualization. Despite the fact that the architectures are not yet mature enough to be deployed in large scale, the preliminary results reveal the promising future of virtualization in wireless networks.

Keywords: virtualization, WiFi, network interface virtualization, load balancing, SplitAP, cellular network, Network Virtualization Substrate (NVS), Long Term Evolution (LTE), Internet of things (IoT), wireless sensor networks, smart home, Software Defined Radio (SDR), Multi-Purpose Access Point (MPAP), Software Defined Network (SDN), OpenRAN

Table of Contents

1. Introduction

Virtualization is a hot topic in networking in general, but most of the virtualization techniques are designed for wired networks. Wireless networks are different in many important aspects. These techniques need to be modified to be functional in wireless networks. Various wireless standards are used to deal with all kinds of needs. This fact introduces a bigger challenge because the current resource and structure have direct impact on the implementation of virtualization. However it also presents a greater opportunity as virtualization can be the very bridge to connect those standards in an efficient way. Another valuable asset in wireless networks is Software Defined Radio (SDR). It exploits the features of wireless communication and provides a powerful tool. It will further enhance the performance of virtualization.

2. Virtualization in IEEE 802.11 WiFi

As the most widely used wireless standard, IEEE 802.11 (WiFi) is considered to be indispensable. Despite the performance of Wifi has been improved dramatically, new techniques are still needed to further enhance it to cope with the ever-growing demand. Virtualization has been proposed as a promising solution. Virtualization has been implemented in network interface and access point (AP).

2.1 The need for virtualization in WiFi

The WiFi networks have a centralized structure as APs are responsible for almost all the major functions such as managing, scheduling and data transmitting. Each WiFi enabled device is bonded to a certain AP. Any transition from one AP to another AP will cause Quality of Service (QoS) interruption to some extent. This issue is non-negligible in WiFi networks because moving from place to place is very common and most WiFi APs have limited coverage distance. Virtualization by its nature provides the possibility to let one device be virtually connected to several APs simultaneously. This will mitigate the transition effect and thus improve the overall performance.

On the other hand, load balancing is another wired networks idea which is not feasible until virtualization is implemented. As the number of APs is increasing, they are overlapping each other more often. Therefore load balancing among APs could bring the benefits like reduced equipment cost and improved reliability to WiFi networks. Load balancing has been proved very effective in wired networks and has even more potential in WiFi networks since the offload from the wired networks to WiFi networks will be dominating in the next decade.

Another interesting proposal introduced in [Bhanage10] is to implement several virtual access points in a single physical AP. This design will enable better sharing of the limited wireless resource. In this case, virtualization happens in the AP which is another approach to applying virtualization in WiFi networks.

2.2 Network interface virtualization and Virtual WiFi

Network interface virtualization can be implemented in software or hardware [Aljabari10]. [Xia11] proposed an approach which combined both hardware and software. Software virtualization mainly involves Virtual Machines (VMs) and hypervisor. It is more flexible because software can be configured in multiple ways, either distributed or centralized. However, it also demands high computation ability, which may be too much for certain mobile devices such as smart phones and tablets. This is the main reason why pure software solution is not desirable in WiFi environment.

Single Root I/O Virtualization (SR-IOV) is an example of hardware approach [Aljabari10]. It divides a single Peripheral Component Interconnect (PCI) device into several Virtual Functions (VFs), each of which is used by a VM. It reduces the resource consumption of each VM by moving the functions to hardware. But it presents some new issues. One of them is that it occupies too much space and not economically efficient for mobile devices. The interoperability issue among different manufacturers will compromise the performance, too.

The new challenges coming from the wireless context require new solution. In [Xia11], Virtual WiFi takes a combined approach of software and hardware. In hardware sense, only a limited modification to the typical WiFi card is needed. As for the CPU utilization, the prototype of Virtual WiFi, enabling full wireless functionalities inside guest VM, consumed 45% more CPU utilization to reach the same throughput as the native WiFi case. It is still expensive, but it opens a new road and further improvement is expected in the future. With the ability to communicate to several other network interfaces simultaneously, WiFi devices could form a mesh network and thus enjoy the benefits of mesh networking [Hazmi11].

2.3 Load balancing of Access Point (AP) enabled by virtualization

Equipped with the ability to let a WiFi device be associated to some APs in the same time, WiFi networks now can load balance. This will be very beneficial in public areas such as university and public transportation where the connection distribution is dynamic and mobile.

In [Oliveira12], based on a time slot computation algorithm, the associations between devices and APs are dynamically adjusted. The handover between APs is fast due to virtual interface switching. Via a four way handshake, it only takes around 50 ms to finish the migrating process which is negligible in most cases. Fig. 1 below shows the handover process from AP0 to AP1. First the station does an fast authentication with AP1 before reassociation. After the authentication, it performs a four way handshake. If the handshake is successful, the new AP, which is AP1 in this case, will update the forwarding table of the upper level equipment and redirect the traffic to the new AP. Finally it disassociates with the original AP.

Figure 1. Fast handover during virtual interface switching

Figure 1. Fast handover during virtual interface switching

Load balancing not only ensures fairness among APs, but also improves the reliability of the network. If one of the several APs fails, the device will still be able to continue the ongoing operation instead of the total disconnection in traditional WiFi networks. However, the 50 ms handover will still decrease the QoS of certain real time application. If the frequency of handover is too high, the result negative effect should not be overlooked.

2.4 Virtualization for flexible sharing of WLANs and SplitAP

So far the virtualization has all been implemented in the WiFi stations connected to an AP. Having enough resource and flexibility, an AP is with no doubt suitable for virtualization, too. Virtualizing the respective interfaces to different device inside an AP will have traffic isolated as needed and lead to the diverse QoS implementation. It means one AP could enforce several networking policy in one physical infrastructure. Differentiated service means better sharing of the network resource. It is similar to the function performed by the routers in the wired networks.

In [Oliveira12], SplitAP is proposed as the design to realize the idea depicted above. It focused on the sharing of uplink traffic, which is far more complicated than downlink traffic. By applying different traffic policies to respective client groups, the uplink resource is distributed in a more fair and effective way. The 40% improvement in fairness is quite impressive. More importantly, it pointed out the potential in virtualizing APs.

As the center of a WiFi network, an AP is built only for the function of wireless routing. More functionality can be realized based on its abundant resource. Integrating existing networking techniques including virtualization into APs will increase its functionality and versatility. Furthermore, letting APs do more tasks will relieve the burden on the mobile devices.

3. Virtualization in Cellular Networks

Different from WiFi networks, cellular networks have larger coverage area and more sophisticated infrastructure. They have been in business for several decades and have achieved mature solutions to the mobility issue. Larger coverage area means frequency of transition among base stations is relatively low. However, virtualization is still very helpful in terms of customizing service to various tenants [Wen13]. This enables better resource utilization and better efficiency.

3.1 The need for virtualization in cellular networks

Multi-tenancy is a major trend in both wired and wireless networks. The number of users in a cellular network is huge. Various service needs come along with large user population. On the other hand, the fact that smart phones are more versatile nowadays further increases the demand for customized service. Even with much higher data rate brought by 4G network, the cellular networks are still too rigid to adapt with the new usage style. This is reflected in the phenomenon that the needs for wireless mobile networking is hard to cope with while the price is still high.

Virtual wireless networks, which may have a different networking architecture while sharing the same physical infrastructure have become viable with the implementation of virtualization. The base stations of cellular networks have more than enough resources to deal with virtualization. The major issue is how to limit the amount of modification to ensure the smallest down time of base stations when upgrading the system. Thus the software solution is the first choice. Virtual Machines can be helpful. Modifying the scheduling software in use is another option [Wen13]. The second approach introduces the idea of Network Virtualization Substrate (NVS). It simplifies the whole architecture by putting the virtualization into a single structure. A clear blueprint is essential for a successful industry level operation. Evaluation has been done on both WiMAX and LTE testbed which are the mainstream cellular networks today.

3.2 Network Virtualization Substrate (NVS) for cellular networks

In [Kokku12], a NVS design is proposed and prototyped to check the effectiveness of the design. Isolation, customization and efficient resource utilization are the three main goals of the NVS design. Two key features adopted in this design are an optimal slice scheduler to ensure better resource reservation and a generic framework to implement per-slice based customized flow scheduling [Kokku12]. Here virtualization brings the idea of flows and slices which decompose the traffic for classification. Detailed classification means differentiated QoS policies and improved resource utilization.

The design of NVS is shown in fig. 2 below. Each slice is tenant-based. For each slice a specific scheduling policy is enforced which is in the form of classification criterion within the NVS framework. Uplink and downlink are classified separately due to the asymmetric nature of the wireless network. However the fact that both of them go through the frame scheduler makes the structure much more simplified and policy change setting can be done in an efficient manner.

Figure 2. NVS design

Figure 2. NVS design

The prototype for this design has been implemented on a WiMAX testbed and achieved impressive result. All these works have been based on the assumption of virtualization in a single base station. Typically, a cell phone can be covered by three or more base stations. Therefore the ability to coordinate the resource among multiple base stations makes the future of virtualization in cellular networks be more promising.

3.3 Virtualization in Long Term Evolution (LTE)

Being the most widely deployed cellular network in the transition from 3G to 4G, LTE is a nature choice of testbed for virtualization. [Zaki10] displays a possible method to implement virtualization in LTE networks. Two components are introduced: LTE Air Interface Virtualization and LTE Virtualization Hypervisor. Similar to what is happening in WiFi networks, interface virtualization enables several virtual entities share the physical resource on a single infrastructure. Enhanced NodeB (eNodeB), the basic node in LTE networks, is being virtualized.

The major part of the virtualization work is done by the LTE Virtualization Hypervisor. It is responsible for not only virtualizing eNodeB but also the scheduling and resource distribution among the virtualized eNodeBs. Information coming from eNodeB is collected and analyzed to better coordinate among various demands and network status. In some sense the hypervisor is similar to NVS. It provides a unified control platform for a large number of virtualized entities. Another interesting vision mentioned in [Zaki10] is that virtualization gives small operators which aim at specific user group with specific needs a place in the future cellular market. Once the infrastructure is capable of being shared, the biggest barrier for the small operators is removed. Maybe in the near future an APP market dedicated to cellular service will emerge. It will push the idea of customized service to a new level.

4. Virtualization in the Wireless Part of Internet of things (IoT)

Internet of Things is expected to connect everything together. Wireless networking is the fundamental for IoT because it can integrate almost anything into networks in an efficient way. Sensor networks are by far the most widely deployed IoT related wireless network. Effort has been made on this part.

4.1 The need for wireless virtualization in IoT

IoT has its unique demand for wireless networks. Most of the objects expected to be connected are limited in functionality, size, cost and power. With such constrained resources and the enormous business scale, sharing becomes even more significant. Table 1 highlights the major differences between wireless networks in current Internet and in the future IoT.

Table 1: The major change on the way to future IoT and impact on virtualization.
Project or ArchitectureNaming SchemeMethod applied
DeviceHaving enough
resources so far
Need to limit the resource
on most devices in order to connect
everything in an efficient way
Virtualization are limited to
the center device of
the wireless networks
NamingIP based naming
scheme ensures a worldwide
scale sharing
Still need a integrated
global solution
Large scale virtualization
in IoT is not practical until
the solution is found
Number of
connected nodes
A huge number but
still countable
Billions of them and even
more when smaller things
are intelligent enough
to be connected
Scalability of Virtualization
becomes more important

Right now IoT is still at early stage and the integration of major research fields has not begun yet. However in the future, IoT will certainly be implemented as a comprehensive architecture like the IP based networks. With a uniform naming system, IoT resources can be shared within in a worldwide scope. Virtualization will secure its position in future IoT networks.

WiFi, cellular networks and other standards, such as Bluetooth and Zigbee, are all part of the wireless IoT networks. In this section, we will focus on wireless sensor networks (WSN) which is the most common IoT application in the real world. Its presence is almost everywhere, from space exploration to smoke detectors inside each apartment. Applying virtualization in WSN could bring some immediate benefit while propose a virtualization approach which could be used in the future IoT. The immediate benefit is further displayed by the application in smart home. As an emerging industry, smart home business is expanding at an astonishing rate. If virtualization could be successfully introduced into this market, it probably will be adopted in other IoT related industries soon.

4.2 Virtualization of wireless sensor networks

The core idea in virtualization of wireless sensor networks (VSN) is the separation of sensor infrastructure providers (SInPs) and sensor virtualization network service providers (SVNSPs) [Islam12]. SInP is responsible for the management of physical sensor infrastructure while SVNSPs integrate the resources coming from multiple SInPs and develop the service which is provided to the application level users (ALU). In some sense it is another form of an APP store despite the service offered here can not be very complicated due to the limited resources in a sensor network.

A unique challenge for a VSN is that it has not set up a world-wide unified naming structure like IP addresses in WiFi networks or cell phone numbers in cellular networks. This largely impedes the performance of VSN because the resources being shared are not large enough to be effectively redistributed. This sometimes leads to the false impression that virtualization does not help in VSN. The solution to this issue is the slowly implemented IPv6 and its low energy version IPv6 over Low power Wireless Personal Area Networks (6LoWPAN). Being the backbone of the current networks, IP is the nature bridge between the current networks and the IoT networks of the future. Although it is overwhelmed by all kinds of issues, IP still dominates the Internet and will continue doing so in the foreseeable future.

If these barriers can be removed, virtualization can be as beneficial as it is in other wireless networks. Flexibility, manageability, customized service, and cost effectiveness all can be associated with VSN.

4.3 Virtualization in smart home

Based the VSN architecture, [Huh13] proposes a new VSN business model for smart home. The virtualization feature of the design is showed in Figure 3 below. We see that the main components of VSN are included. SVNSPs lease the needed physical resources from SInPs and offer customized services to the Application Level Users in a smart home context. It totally adopts the VSN architecture with limited modification to fit into smart home environment.

The performance of this prototype is impressive in terms of cost reduce, CPU and memory usage, and the execution time of the applications [Huh13]. It proves that in smart home industry, virtualization is already a strong candidate. One reason why smart home is chosen here is that the applications used in smart home are geographically concentrated, which help VSNs avoid the troublesome naming issue discussed before.

For the virtualization in smart home, apartment environment may be a better comparison than the individual house environment. This is because apartment buildings have more users in a limited space to share the infrastructure. The more the infrastructure is used, the less cost a single user has to pay. Thus VSN will be probably deployed mainly in urban or densely populated area such as hotel and dormitory.

Figure 3. Sensor network virtualization in smart home

Figure 3. Sensor network virtualization in smart home

5. Virtualization via Software Defined Radio (SDR)

Software defined radio (SDR) is a system in which some specific originally hardware-based functions are implemented through software [Wiki1]. It leverages some properties only found in radio communication process and has been widely used in wireless networks. The flexibility provided by SDR is exactly what virtualization wants to achieve. For wireless networks, SDR gives it a unique advantage against wired networks in the future.

5.1 New virtualization technique enabled by SDR

SDR has been around for a long time. Mature projects and products are available on the market. Among them some are open sourced. This simplifies the process in the research of combining virtualization with SDR. Similar to interface virtualization, virtualization in SDR allows a single physical radio device to transmit and receive traffic for multiple wireless standards. However, it consumes less extra resources which is crucial in wireless networks. It does not require a fully functional Virtual Machine or any additional hardware. Table 2 lists what unique SDR can provide in some major aspects considering implementing virtualization.

Table 2: The comparison between SDR and traditional virtualization methods
Traditional Virtualization MethodsSDR
SoftwareNeed to transplant the
one used in wired networks
with large modification
Market tested software
Slight modification needed
HardwareNew hardware parts are
required if hardware-based
solution adopted
Limited modification to the
hardware already deployed
AlgorithmDesigned for general networks
use, not necessarily optimal
for wireless networks
Dedicated, effective and mature
CostCost varies dramatically based
on the solution suggested
Low level modification means
relatively low infrastructure and
operation cost
Solutions designed for wired
networks often ignore
energy demand
Good for low energy wireless
devices with functions
only dedicated to
wireless communication

The coordination of various wireless standards operating close to each other in frequency spectrum is an important issue in wireless networks. Virtualization using SDR offers a new solution to this problem. Since a single Access Point or base station is able to cope with different standards via software manipulation, the coordination or scheduling work can be done in a centralized manner. This will save a lot of wireless traffic used to detect, estimate and negotiate. All these attributes sounds like what Software Defined Network (SDN) is trying accomplish. In [Yang13], SDN is applied in radio access network. This relates two great ideas together.

5.2 Multi-Purpose Access Point (MPAP)

The idea of virtualizing the AP to make it being the center point of several various wireless networks is displayed in [He10] in the form of a new architecture called Multi-Purpose Access Point (MPAP). MPAP includes the main wireless standards which all operate at the congested 2.4GHz ISM band. Through SDR based on Sora [Wiki2] which is a mainstream SDR project, samples from different wireless standards are separated and distributed to respective virtual network card interfaces (VNICs). VNIC are software based and designed to implement the PHY and MAC of a wireless standard.

Before this, APs were dedicated to a single standard. To coordinate among each other, a large amount of overhead and traffic are consumed. With MPAP, a single physical structure can be the control center of a mixed network. This is similar to when air traffic control center directs planes from various airline companies. The saved cost means improved efficiency for all the wireless networks involved.

The number of infrastructure devices in a typical user case is also reduced. For instance, in a traditional house, the WiFi network which provides high speed Internet connection and the 802.15.4 network which connects all the smart appliances and monitors can share a single router. Easier management and reduced equipment cost will bring a much better user experience which is the key to success in the market.

5.3 Software Defined Network (SDN) and OpenRAN

Centralized control reminds people of Software Defined Network (SDN). [Yang13] extends SDN into wireless networks and proposes OpenRAN as the virtualization-based new architecture. All the wireless resources in different wireless networks are virtualized and put into a cloud computing resource pool (CCRP). At the same time, wireless spectrum is also virtualized as another form of resource to build up wireless spectrum resource pool (WSRP). High speed connections are set up between the two pools. Then the SDN controller is introduced. It is the nerve center of the whole network. The resources in the two pools are organized and distributed by the SDN controller via OpenFlow protocol. These features ensure that the elements in the network are programmable. Virtualization has been a powerful tool throughout the architecture.

Since SDN is a pretty new concept, the combination of SDN and wireless networks is far from being productive in the industry level. However there is an important common point between SDN and SDR. That is they are both software-oriented. It is a solid base for the integration of the two. People wonaE t be surprised if SDR becomes a standard component of SDN protocol. SDR will fuel SDNaE s success in the future network.


In this paper, we discussed the virtualization in WiFi, cellular and IoT-based networks. Virtualization has been modified in various manners to meet the needs and requirements of different wireless standards. Software and hardware solutions are both available, and each have their own advantages in certain application environments.

Within a single wireless standard, virtualization could help the networks to provide better QoS and user experience by offering customized service and realizing multi-tenancy. Meanwhile cost and energy usage is reduced because the resources are distributed more efficiently. Even more valuable concepts like load balancing become feasible. Additionally, virtualization equipped with SDR make the coordination among different standards less painful. The shared networking center is capable of managing various kinds of traffic simultaneously. SDN is introduced to organize the networking resources in a more desirable way.

The virtualization in wireless networks has not been tested in a large business scale due to certain inherent restriction of wireless networks and the complexity of the modifying existing virtualization techniques. But it will certainly be valuable in the future IoT networks.

7. References

*The references are listed by the importance.

  1. [Xia11] Lei Xia, Sanjay Kumar, Xue Yang, Praveen Gopalakrishnan, York Liu, Sebastian Schoenberg and Xingang Guo, "Virtual WiFi: bring virtualization from wired to wireless." ACM SIGPLAN Notices, vol. 46, no.7, pp. 181-192, ACM, 2011,
  2. [He10] Yong He, Ji Fang, Jiansong Zhang, Haichen Shen, Kun Tan and Yongguang Zhang, "MPAP: virtualization architecture for heterogenous wireless APs." ACM SIGCOMM Computer Communication Review, vol. 40, no.4, pp. 475-476, ACM, 2010,
  3. [Zaki10] Yasir Zaki, Liang Zhao, Carmelita Goerg and Andreas Timm-Giel, "LTE wireless virtualization and spectrum management." Wireless and Mobile Networking Conference (WMNC), 2010 Third Joint IFIP, pp. 1-6, IEEE, 2010,
  4. [Islam12] Md Motaharul Islam, Mohammad Mehedi Hassan, Ga-Won Lee and Eui-Nam Huh. "A survey on virtualization of wireless sensor networks." Sensors 12, no. 2, pp. 2175-2207, 2012,
  5. [Wen13] Heming Wen, Prabhat Kumar Tiwary and Tho Le-Ngoc, "Current trends and perspectives in wireless virtualization." Mobile and Wireless Networking (MoWNeT), 2013 International Conference on Selected Topics in, pp. 62-67, IEEE, 2013,
  6. [Wang13] Xin Wang, Prashant Krishnamurthy and David Tipper, "Wireless network virtualization." Computing, Networking and Communications (ICNC), 2013 International Conference on, pp. 818-822, IEEE, 2013,
  7. [Rivera10] Antonio D. Rivera and W. L. Zucci. "Virtualization of wireless network interfaces Wi-Fi IEEE 802.11." Proc. of the 9th WSEAS International Conference on Telecommunications and Informatics, pp. 46-51, 2010,
  8. [Aljabari10] Ghannam Aljabari and Evren Eren, "Virtual WLAN: Extension of Wireless Networking into Virtualized Environments." International Journal of Computing Research Institute of Intelligent Computer Systems, Vol. 10, Issue 4 ,pp. 1-9, 2010,
  9. [Bhanage10] Gautam Bhanage, Dipti Vete, Ivan Seskar and Dipankar Raychaudhuri, "SplitAP: leveraging wireless network virtualization for flexible sharing of WLANs." Global Telecommunications Conference (GLOBECOM 2010), pp. 1-6, IEEE, 2010,
  10. [Ahn11] Sung-Won Ahn and Chuck Yoo. "Network interface virtualization in wireless communication for multi-streaming service." Consumer Electronics (ISCE), 2011 IEEE 15th International Symposium on, pp. 67-70, IEEE, 2011,
  11. [Huh13] Eui-Nam Huh, "An efficient model for smart home by the virtualization of wireless sensor network." International Journal of Distributed Sensor Networks, pp. 1-10, 2013,
  12. [Kokku12] Ravi Kokku, Rajesh Mahindra, Honghai Zhang and Sampath Rangarajan, "NVS: a substrate for virtualizing wireless resources in cellular networks." Networking, IEEE/ACM Transactions on 20, no. 5, pp. 1333-1346, 2012,
  13. [Yang13] Mao Yang, Yong Li, Depeng Jin, Li Su, Shaowu Ma and Lieguang Zeng, "OpenRAN: a software-defined ran architecture via virtualization." Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM, pp. 549-550, ACM, 2013,
  14. [Hazmi11] Yahya Al-Hazmi and Hermann de Meer, "Virtualization of 802.11 interfaces for wireless mesh networks." Wireless On-Demand Network Systems and Services (WONS), 2011 Eighth International Conference, pp. 44-51, IEEE, 2011,
  15. [Oliveira12] TibACrio M. De Oliveira, Marcel WR Da Silva, Kleber V. Cardoso and JosAC Ferreira de Rezende. "Virtualization for Load Balancing on IEEE 802.11 Networks." Mobile and Ubiquitous Systems: Computing, Networking, and Services, pp. 237-248, Springer Berlin Heidelberg, 2012,
  16. [Wiki1] "SDR",
  17. [Wiki2] "Sora",

8. List of Acronyms

6LoWPANIPv6 over Low power Wireless Personal Area Networks
ALUapplication level users
APAccess Point
CCRPcloud computing resource pool
eNodeBEnhanced NodeB
IoTInternet of things
LTELong Term Evolution
MPAPMulti-Purpose Access Point
NVSNetwork Virtualization Substrate
PCIPeripheral Component Interconnect
QoSQuality of Service
SDNSoftware Defined Network
SDRSoftware Defined Radio
SInPsensor infrastructure provider
SR-IOVSingle Root I/O Virtualization
SVNSPsensor virtualization network service provider
VFVirtual Function
VMVirtual Machine
WSNwireless sensor network
WSRPwireless spectrum resource pool
VNICvirtual network card interface
VSNvirtualization of wireless sensor network

Last Modified: April 30, 2014
This and other papers on current issues in Wireless and Mobile Networking are available online at
Back to Raj Jain's Home Page