ACM SIGCOMM 2012, August 13-17, 2012, Helsinki, Finland
Site Menu

Programming Broadband Wireless with Sora

Presented by: Kun Tan, Jiansong Zhang (Wireless and Networking Group, MSR Asia) and Paul Wang (Innovative Engineering Group, MSR Asia)

Monday, August 13, 2012 (full day)
Helsinki, Finland
Room: #21

Tutorial Requirements

Attendees will utilize a Windows-based PC equipped with Sora hardware. A basic understanding of Windows programming and Windows Driver Kit (WDK) is expected. Knowledge on wireless communication/OFDM is useful but not required. Further, since PCs prepared in the tutorial is limited (and may be shared for online experiments), each attendee is expected to bring his/her own Windows laptop for offline programing and exercises. The laptop should have an Intel CPU with a Windows operating system (XP/Win7) or a Windows system running in a virtual machine. The latest Sora SDK should be installed. You can find the latest version here. More background information on the Sora Platform can be found on MSRA site or Sora forum.

Due to the facility constraints, the number of attendees for the tutorial is limited to 20.

Email the Organizers

Technical Program

  • 9:00-9:30 Introduction and Sora basis

  • Sora architecture

    Sora usage

  • 9:30-10:30 Programming Sora I - API/Vector1/Brick programming model

  • Sora software architecture

    The Brick programming model

    Victor1 SIMD library

    Debug using DbgPlot

  • 10:30-11:00 Coffee Break

  • 11:00-12:30 Programming Sora II - implementing an OFDM communication system

  • Introduction of OFDM communication

    Walk-through of Sora broadband OFDM sample

    Demonstration of Sora

  • 12:30-14:00 Lunch Break

  • 14:00-15:30 Sora lab I - system configuration, useful tools, spectrum analysis

  • Sora hardware configuration and tuning

    Spectrum analysis using Sora

  • 15:30-16:00 Coffee Break

  • 16:00-17:30 Sora lab II - build a complete communication system: PHY and MAC

  • A simple communication system: physical layer

    A complete communication system: MAC and networking


Wireless networking is ubiquitous and has become an essential part of the global Internet. Evidently, the general networking community is increasingly interested in wireless research, especially in broadband wireless communication and networking. More and more research works are crossing into the lower layer wireless primitives, instead of only higher layers (MAC and above) on existing standards (notably WiFi).

To facilitate the experiment and evaluation of new research ideas, Microsoft Research Asia has developed a high-speed software radio platform, called Sora. Fully utilizing the state-of-the-art multi-core CPU, Sora combines the performance and fidelity of hardware SDR platforms with the programmability and flexibility of general-purpose processor (GPP) SDR platforms. Sora is highly capable to implement and experiment state-of-the-art broadband wireless technologies, like WiFi and LTE.

This full-day tutorial will be split into two parts. In the morning session, we will focus on the Sora basic, architecture, programming model, and useful tools. We will also present an introduction to OFDM and MIMO communication. In the afternoon, we will use the tools discussed in the morning session to program on Sora platform and rapidly develop a broadband wireless communication system.


  • Introduction to Sora
    • Sora architecture
      • Hardware: Radio Control Board (RCB) and RF frontends
      • Software: Sora SDK; Kernel drivers; Testing and configuration
    • Sora usage
      • Basic operations
      • Useful tools (dut/demod11/umxsdr/debugplot/etc.)
  • Programming Sora
    • Sora software architecture
      • Sora components
      • Kernel mode and User-mode(UMX) API
      • Reflection
    • The Brick programming model
      • Brick module
        • Basic concept
        • Interfaces and events
        • Facade and local context
        • Parameterized Brick
        • Example Bricks
      • Processing graph
        • Connecting Bricks
        • Graph context
        • Multi-threading
        • Example graph
      • Exercise: Hello Brick program
    • Victor1 SIMD library
      • Overview
      • Vector data types
      • Vector operations
      • Rep utility
      • Exercise: Hello Vector1 program
    • Debug using DbgPlot
  • Introduction of OFDM communication
    • Fundamentals of OFDM
    • Synchronization
    • Channel estimation, equalization and tracking
  • Walk-through of Sora broadband OFDM sample
    • Key algorithms and their implementations
    • Processing graph
  • Demonstration of Sora
  • Lab experiments and exercises
    • Sora hardware configuration and tuning
    • Spectrum analysis using Sora
    • A simple communication system: physical layer
    • A complete communication system: MAC and networking

About the Presenters

Kun Tan

Kun Tan is a Lead Researcher at Microsoft Research Asia. He leads the development of the Sora Software Radio system. His research interests include transport protocols, congestion control, delay-tolerant networking, and wireless networks and systems. Previously, he has developed the Compound TCP, which has been implemented and deployed in latest Windows OS. Dr. Tan won the best paper award in NSDI 2009, and also won best demo awards in NSDI 2009 and Sigcomm 2010. He is an associate editor of IEEE Transaction of Mobile Computing. He is also an adjunct professor of the department of Electronic Engineering of HUST, China.

Dr. Tan received the B.E., M.E. and Ph.D. degree in Computer Science and Engineering from Tsinghua University, Beijing, China, in 1997, 1999, and 2002 respectively. He is a member of IEEE and ACM.

Jiansong Zhang

Jiansong Zhang is an Associate Researcher at Microsoft Research Asia. He joined MSRA in July 2006, immediately after he received his Master degree from Tsinghua University. Before that, he obtained his Bachelor degree also from Tsinghua University in 2004. During the years in MSRA, he devoted most of his time to Software Radio (Sora project) and Wireless system design related research. He has published several papers in top-tier conference like Sigcomm, Mobicom, NSDI, Infocom as primary author or co-author. From September of 2011 to present, he has started to pursue a PhD degree in the CSE department of Hong Kong University of Science and Technology (HKUST) in a joint program between MSRA and HKUST.

Paul Wang

Paul Wang is a Research Software Development Engineer at Microsoft Research Asia. He received his Bachelor degree in Department of Engineering and System Science, National Tsing Hua University, Taiwan, in 1999, and the Master degree in Department of Computer Science and Information Engineering, National Taiwan University, Taiwan, in 2010. His research interests include operating system and programming languages

Download Proceedings

Enter the “Registration ID” from your registration confirmation email.

The ACM SIGCOMM 2012 Website by ACM SIGCOMM 2012 is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Source code is available at