Friday, July 31, 2009

Arrg!!....June revision

Just when I thought my life has become easy I see a new revision of 3GPP Release 8. It just cant get any more frustrating.

The idea was 3GPP Release 8 would freeze in Dec 2008 and there will be a bug fix version of it in March 2009. Oh no no, March doesnt have all the fixes, there comes a new revision in June. And guess what, GTP-C header has changed a bit. Seq no is now 3 bytes long and spare is 1 byte long (it was 2 and 2 respectively in march). Is it a good idea to jump on to june version of the specs now? or will have a new version of spec in next couple of months? any more bug fixes? Darn! I hate software.

Hey, does anybody know how to keep track of it these changes or 3GPP guys just meet when ever they feel like and bring out the new spec? I searched the entire 3GPP web site but couldn't get the details I wanted.

If you feel the same frustration I am feeling comment saying frustrated, if you are irritated say irritated. :) (Just kidding!)

FreeRadius + 3GPP Radius Part 2 next.

Monday, July 27, 2009

VoLGA: Take 1

This past weekend I was tired of doing exciting stuff so I decided to get a printout of VoLGA Requirements and started reading it. The stage 1 document is sweet and nicely written in 13 pages. Considering my small brain, here is what I could understand.

VoLGA: Voice over LTE Generic Access : - I will refer it as V. VoLGA is just too much to write every time.

The whole idea of V is to make SMS and circuit switched calls possible over LTE. Rocket science! Dah! There is so much fuss about LTE that people actually forgot the fact that mobile phones were first designed to make calls. Some how I am strangely "attracted" to V. I started reading every possible post on internet about V when it was launched. I myself checked the forum almost once every day to see if there was any draft. Then came the first draft and before I could download it there were reviews about it all over the web by industry pundits. Nevertheless this is what I could grasp from stage 1 doc.

V resembles the 3GPP Generic Access Network (GAN) of which I have no clue. So there is a new network element inserted between EPS and CS network. This device will make CS calls and SMS possible over LTE. For V, all signaling and user plane traffic is fully transparent to EPS access network. This means EPS will see all V traffic as normal user plane traffic over suitable EPS bearers. If there is a EPS bearer then it means there is a UE initial attach. Cool.

V can work with both Iu-Mode and A-Mode giving full access to 2G/3G CS network. V provides handover from E-UTRAN to GERAN/UTRAN CS network. Handover the other way is not supported in Phase 1. For V to work there has to be few changes in UE. First, UE shall support CS signaling over EPS bearers. UE needs to be capable of supporting V services with serving PLMN. UE will be able to use EPS default bearer or connectivity for V service discovery, or a dedicated PDN connection. The same applies to signaling and user traffic too. That means a UE can use default or dedicated bearer for V service discovery, CS signaling, SMS and user(voice) traffic. QoS for EPS bearers must be supported else the call quality might go bad.

VANC : VoLGA Access Network Controller : manages UE's connection to V service. It will interface with MSC using the standard A or Iu interface.

V doesn't impact EPS much. All it needs is proper QoS, charging policy and header compression on user plane(?).

I believe the above is what I could make out. I will start reading the stage 2 and post architecture and stuff soon.

Questions : Am I missing something here or no one is talking about it? How in the world does CDMA circuit switched calls work over LTE? I mean V is all about GSM evolution talking to LTE, then what about the CDMA networks? How will LTE and CDMA work together for CS calls and SMS?

Have anything to say, feel absolutely free to drop in a line.

Wednesday, July 22, 2009

Tracking Trends!

Something hit me today. GTPv2 is not exciting any more, because I figured it out and understand things there is pretty easy now. Read this.

I want to start looking at different things and blog about them instead of dumb GTP. So I figured out my wish list. I had a wish list before but this is new one. :-D

  • Volga: Volga is first the thing I want to track. My future posts post will be mostly on this technology. I have to say I absolutely have no idea about its architecture. I only know that in LTE circuit switched calls and SMS is not possible at this moment. CS fall back is not a good option and IMS is still far away. So this weekend its all about Volga.
  • Femtocells: I want to rip these femtos apart and look into the devices. Specs? Architecture? etc etc
  • OFDM/MIMO/64QAM: Radios signals and systems are my favourites since my engineering days. I still remember those days when I soldered a FM transmitter and broadcasted Eminem songs in college and apartment. I was pretty good with modulation, sampling and shannon;s theorems. TCP/IP made me forget them completely. I need to start reading radio.
  • S11 interface: The code which I wrote in last post needs to move ahead. I am working on dragging my friend in.
  • Mobiles: I am not a expert here. But I love to read reviews about them and may be post a few.

If something crazy is on my mind why should it be on blog and irritate the subscribers? There are few times where I said something would happen and it never happend, something I said I would do and never did. So I thought if I blog about what I want to do, I actually might do just for the sake that I wrote about it.

Wish me luck and have a nice day.

Sunday, July 19, 2009

LTE user plane

Questions. More questions!

This time focus in on LTE user plane and SGW load balancing. Picture this. eNB, MME and SGW. Control plane between MME and SGW, User plane between eNB and SGW controlled by MME. Perfect.

SGW : How many interfaces does an SGW have. When I read about ALU bringing in LTE device (ALU 7750) I went and checked out their website. Read here. A SGW is going to be a blade which will sit in a 7750 router. So is the case with Cisco. When I say a blade, how many interfaces will that blade have? Next how many blades can sit in a device? And how will the blades be controlled? Each blade will have its own software to control?

More elaboration: MME sends out a create session request to SGW. It picks up the SGW from SGW selection function. So a create session request will be sent to a particular SGW. Particular SGW mean a "Particular IP". Now SGW may respond to request with a Create Session Response. Note that Create Session response has FTEID of SGW, where in SGW can send information about another blade of SGW that is another interface, if it exists. That way SGW can balance the load? Say if 7750 has 10 SGW blades, then how will this load balancing be done. One main interface and having several other interfaces? How are all these blades controlled? Because there has to be a TEID mapping.

User Plane: When we say user plane is segregated from control plane, what do we mean here. Is user plane traffic going to hit the same interface of SGW where control plane is established. If yes, how good is this implementation? Again same question, if there exists multiple blades how are they controlled?

Below find SGW with little boxes which are nothing but blades. Will the blades be controlled by master software running on SGW or will there be a software for each blade. Say if two blades have to communicate how will they do it?


How it started: I am working a product which is supposed to test SGW. As there is no SGW available to test dev guys gave us a dummy implementation of SGW. Here both user plane and control plane traffic hit the same interface. I decided to write my own SGW. The problem is my SGW runs on a linux box and I wrote only control plane communication. After control data is supposed to flow. I noticed that data was hitting the same interface where control plane was established. Thats where my quest for separating the data and user plane began.

Folks any clue on how it is done? I really want to know how is the SGW made. Your reply's are appreciated and greatly welcomed.

Sunday, July 12, 2009

LTE S11 Interface : GTPv2 Code

I had an amazing vacation with family and friends. But past week took the juice out me. Too much was left out at work and I opted for time off at really crucial time of release. O2 must be feeling bad about us for delaying the software. Anyway, since the beginning I always wanted to do some practical stuff with LTE. I started talking to my good friend and colleague Gopal about doing some thing in LTE. We started with writing GTPv1 code, simulation between SGSN and GGSN for a start. Ok, he started writing the code and I was giving him the IE's and stuff. We did something there. Then we started working at LTE. S1-AP was my protocol of choice, we wrote one handover scenario there, though it was pretty crude. By then my friend who is code freak figured out memory management in C. Then I become little well versed with S11 interface of LTE so I started understanding the code he wrote. First problem was figuring out header file. We had to define structures for every IE and allocating memory to each IE was big pain.

Nevertheless we figured it out. Last week I spent couple of hours day to finish the S11 interface. Ok, so what I did in simple words.

I wrote MME, SGW and GTPv2 communication among them. The messages are

  • Create session request (MME---->SGW)
  • Create session response (SGW---> MME)
  • Modify bearer request (MME---->SGW)
  • Modify bearer response (SGW---> MME)
  • Bearer Resource Command - for dedicated bearer activation (MME---->SGW)
  • Create bearer request (SGW---> MME)
  • Create bearer response (MME---->SGW)
  • Bearer resource command - for dedicated bearer teardown (MME---->SGW)
  • Delete bearer request (SGW---> MME)
  • Delete bearer response (MME---->SGW)
  • Delete session request (MME---->SGW)
  • Delete session response (SGW---> MME)

The code is written in C using UDP socket programming. There are three file.

  • headers.h -- Contains all IE structures
  • MME.c --- This is the client for us, as it initiates the communication
  • SGW.c -- Responds to MME.

If you want to try the code you will need a linux box (I would prefer two linux boxes, one to run mme and other to run sgw.)

Compile the code

----- gcc mme.c -o mme

------ gcc sgw.c -o sgw

and run the code. Please note that you will need to run sgw first.

--- ./sgw

--- ./mme

Use tcpdump to capture the packets on localhost.

--- tcpdump -xXvvv -w temp.cap -s 1500 -i l0

If you want to run the code on two linux boxes, you will need to modify the ip address in mme.c. Find the below section in code and change to ip address on which sgw is running.




Thats it. Run the programs and capture the packets. You should see all the messages mentioned above. You will need latest development version of wireshark to view the messages. Get it here. Note that wireshark still doesnt dissect the messages completely. Atleast you can see the IE's.

Know limitations : Messages contains IE's which are mandatory and conditional to S11 interface. Create session request doesnt send ULI IE. All the values used in the code are dummy.

I will keep building this code for new messages (mobility next).

There it is guys, have fun and do let me know how it looks. Any changes or suggestions are always welcome.   

Update: Guys, I started a project in google code for this. The code is uploaded there (Look at downloads section). Uploading the code in rapidshare was the most dumbest idea. Rapidshare! for uploading the code? Dah! I must have been really stupid.

Link :

Download it, use it or do what ever you feel like. I have published to code under GNU GPL license. I will keep posting the code in download sections and if you want to share anything(patches) feel free to send it to me. I would be happy to update the patch in source. If any body want to be part of administering let me know. I really have no time to manage it, so I am not looking at version control and stuff.

Saturday, July 4, 2009

Femtos for India?

This is just one of those days I day dream. I have few thoughts popping in my head for a while, in fact I started thinking about them during my vacation. I am living in corporate world for past 2 years and I totally understand the network requirements there. But one week stay in my home town with my parents made think about the network in little different way.

Status in India right now : Non Corporate : Majority of India is middle class. With kids going to schools and colleges internet has become a revolution in India. People are using broadband connections offered by local vendors. Couple of years back came the DSL revolution. Every one started adopting to the DSL and ADSL. This brought in major players like Reliance, Bharti, TATA into access network zone. I have a BSNL DSL connection in my home here in Hyderabad. Couple of months back I purchased a wireless access point and my dad is enjoying his wireless connectivity. This applies to most of the homes in my apartment too except that they are still running on DSL without wifi.

OK. Why this back ground check. I started understanding femtos. There are new laptops coming into the market which are pretty cheap. Easily affordable by college students and people like my dad who just needs to check couple of websites and emails. This is my target segment for the discussion.

3G spectrum auctions are still due in India. LTE is still not mature for deployment. So India has to stick to HSPA+ with may be 3 Mbps speeds which is pretty good for the above market segment. The whole idea is "Replacing Wifi with Femtos". Is it possible. Consider this. There are 100 flats in my apartment. Every home has minimum of 2 mobile phones and one computer. Recently people have started purchasing small laptops. So what if, say Airtel, deploys a femto for my apartment giving out mobiles and wireless internet. A laptop with Airtel sim card built in providing internet over HSPA is perfect for my dad and off course great for college students. What will Airtel get by this? 200 mobile connections and 100 internet connections which is definitely good.

I see few difficulties here. First is the laptop with HSPA cards inbuilt. Is it good to have a inbuilt card or should service provider stick to usb sticks? If the cards are inbuilt customers are at the feet of service provider which I hate. But USB sticks are still not affordable, they are expensive. People would go for a DSL connection rather then investing heck lot on a USB. Next is femtos deployment. Migrating customers from one service provider to other is tough as there is still no number portability available. BTW number portability "may" arrive in India by end of september.

Is there is a way to manufacture HSPA cards which can work with any network? Can we make them as generic as wifi cards? Will technology allow it? My whole point is can India deploy femtos skipping wifi boom. A park with femto zone for people to relax and read on web. Coffee pub with femto. Apartments with femto. Isnt it wonderful? Corporate would any way go for them. Femtos will definitely be big hit in corporates.

What do you folks think? Am I completely out of mind or just started to loose my mind. I would like to know your views on this.