telecom • networking • design

an blog

Leave a comment

C Function Call to Assembly Translation – Frame Pointer Operations

Even though most programming is now carried out in high level languages, a good understanding of the generated assembly code really helps in debugging, performance analysis and performance tuning.

In this article, we will discuss the assembly code generated for function calling, parameter passing and local variable management. Frame pointer operations in a function call are described in detail.

C function call mapped to assembly - learn about frame pointer operations

We follow the lifecycle of a function call:

  1. Pushing parameters
  2. Invoking function
  3. Setting up the frame pointer
  4. Dismantling the frame and restoring the callers frame at function exit
  5. The caller popping the parameters.

C to Assembly : function calls and frame pointer operations

Leave a comment

LTE S1-interface handover between eNodeBs

LTE networks prefer using the X2 interface for performing inter eNodeB handovers. An S1 handover is a fallback for scenarios where X2 interface is not available.

As the name suggests, S1 handovers take place over the S1-interface. The MME and the SGW are involved during the handover procedure.

An interesting part of LTE S1 handovers is the indirect tunnel that is established to carry the downlink data during the handover process. Refer to the S1 handover call flow for a detailed signaling flow.

Inter eNodeB S1 handover in LTE


1 Comment

3G UMTS Mobile Terminated Call Flow

Get a detailed look at a UMTS mobile terminating call. RANAP and RRC signaling in a terminating call is describe in detail.

3G UMTS Mobile Terminating Call Flow

3G UMTS Terminating Call Sequence Diagram

The RANAP message flow presented here was generated with VisualEther from a PCAP file.  The field level details have been preserved for the RANAP messages. Click on a RANAP messages in the sequence diagram to see full field level details. For example clicking on the Paging message reveals field level detail in the message.

ranap Radio Access Network Application Part

  • per.extension_bit 0… …. Extension Bit: False
  • per.choice_index Choice Index: 0
  • ranap.RANAP_PDU RANAP-PDU: initiatingMessage (0)
    • ranap.initiatingMessage initiatingMessage
      • ranap.procedureCode procedureCode: id-Paging (14)
      • per.enum_index Enumerated Index: 1
      • ranap.criticality criticality: ignore (1)
      • per.open_type_length Open Type Length: 21
      • ranap.value value
        • ranap.Paging Paging
          • per.extension_bit 0… …. Extension Bit: False
          • per.optional_field_bit .0.. …. Optional Field Bit: False (protocolExtensions is NOT present)
          • per.sequence_of_length Sequence-Of Length: 2
          • ranap.protocolIEs protocolIEs: 2 items
            • ranap Item 0: id-CN-DomainIndicator
              • ranap.ProtocolIE_Field ProtocolIE-Field
                • id: id-CN-DomainIndicator (3)
                • per.enum_index Enumerated Index: 1
                • ranap.criticality criticality: ignore (1)
                • per.open_type_length Open Type Length: 1
                • ranap.value value
                  • per.enum_index Enumerated Index: 0
                  • ranap.CN_DomainIndicator CN-DomainIndicator: cs-domain (0)
            • ranap Item 1: id-PermanentNAS-UE-ID
              • ranap.ProtocolIE_Field ProtocolIE-Field
                • id: id-PermanentNAS-UE-ID (23)
                • per.enum_index Enumerated Index: 1
                • ranap.criticality criticality: ignore (1)
                • per.open_type_length Open Type Length: 9
                • ranap.value value
                  • per.extension_bit 0… …. Extension Bit: False
                  • ranap.PermanentNAS_UE_ID PermanentNAS-UE-ID: iMSI (0)
                    • per.octet_string_length Octet String Length: 8
                    • ranap.iMSI iMSI: 21436587000200f0
                    • ranap.imsi_digits IMSI digits: 123456780020000

1 Comment

GSM Terminating SMS Call

SMS terminating call flow

In this call flow we will look at how a terminating SMS is handled in GSM. Setting up a terminating
SMS session is a multi-step process.

  1. Interrogate the MSC to locate the subscriber
  2. Setting SMS session setup and acquiring radio resources
  3. Sending the SMS.
  4. Releasing the session and associated radio resources.

GSM Mobile Terminated SMS Sequence Diagram