80 likes | 234 Views
This presentation details the development of a load generator for testing a 1xEV-DO Radio Network Controller (RNC) using Erlang versus a non-Erlang solution based on Perl. Key points include the need for concurrency in call simulations, distributed architecture, and efficient report generation. The advantages of the Erlang solution are highlighted, including inherent concurrency, faster execution, and ease of maintenance. Our experiences demonstrate significantly reduced development time and improved scalability over the Perl approach, despite initial training requirements.
E N D
HELGA - A Call Load Generator Bagirath Krishnamachari Lucent Technologies, Bangalore, India Eighth International Erlang/OTP User Conference November 19, 2002
Outline • The Problem Statement • A non-Erlang solution • The Erlang Solution • Experiences
The Problem Statement • Need a load generator for testing a 1xEV-DO RNC • Need to run multiple calls (concurrency) • Need to simulate multiple interconnected Base Stations (distributed tool) • Handoffs between “Base Stations” (rpc, process migration) • Tool should be fast • Need to be generate reports/snapshots • Platform - Solaris/Linux
Reference Architecture 1xEV-DO BTS 1xEV-DO RNC PDSN IP Network 1xEV-DO BTS
A non-Erlang solution • Use Perl • Pros • Short development time • Easy to maintain and enhance • Cons • Concurrency not an inherent feature • Inter-node communication interface needs to be defined • Speed • Scalability
The Erlang solution • Pros • Concurrency, distributed nodes etc are inherent • Behaviour for FSMs available • Faster execution than Perl • Shorter development time • Easier to maintain and enhance • Cons • “Different” language - training needed
The Erlang solution (contd) • Modules/Features used • gen_fsm for simulating the “mobile” • Binaries, Erlang IPC • gen_tcp/gen_udp for the interface to the RNC • pg2 for managing the pool of “mobiles” • spawn/4 for inter-BTS handoffs • ets, random, ...
Experiences with Erlang • Learning curve is short and steep • Development time < half of that for Perl (approx) • Speed = Five times that of Perl (approx) • Scalability - same code for standalone/distributed tool • Difficult to find “early adopters” - but we’re working on it