LinuxCertified, Inc. Home | News and Links | About LinuxCertified Inc.
Linux & Open-Source TrainingLinux LaptopsLinux Services  

embedded linux training

Class Offerings

Class Schedule

Distance Learning


Academic Program

Student Feedback



Linux Internals Training for SDN (Software Defined Networking)

Course Description

This 2-day seminar is designed to bring software developers working with Linux for SDN, virtualization, or certain networking topics up to speed with a variety of details of the Linux kernel and user space implementation and use of virtualization technology and some specialized networking. This seminar provides a variety of hands-on experience.

Attendees will spend approximately 50 percent of the class time actually gaining hands-on experience with these topics, with personal attention and insider knowledge from an experienced SDN developer.

Course Overview

Hands-on with netfilter queue, KVM, and a variety of other networking and virtualization topics inside and outside of the Linux kernel. 

Course Objectives

After this course attendees will be able to use netfilter queue, some advanced socket techniques, libvirt, and other virtualization tools.
Students will be able to discuss Linux virtualization with KVM, from the Intel instructions for virtualization, to KVM, to libvirt, to Virt Manager.

Who Should Attend

Software engineerings working with SDN, Network Virtualization, computation virtualization, or support, QA, or managers working with these technologies

Course Materials

A student course book and a variety of hands-on lab exercises are provided to each student

The following modules will be covered during the class:

Advanced Networking

  • Introduction
  • Proc files and kernel tracing
  • Kernel network stack for IP
  • Traffic control
  • NAPI
  • Net filter sockets
  • Socket buffers
  • Socket system calls
  • IOCTLS for sockets
  • Netlink sockets
  • /proc/net and /proc/sys/net
  • Tuning network buffer sizes
  • Congestion
  • packet sockets
  • netfilter queue
  • libnfnetlink
  • nfnetlink_queue
  • Kernel functionality of netfilter
  • Measuring network performance
  • DPDK Into

Overview Of Linux Virtualization

  • What is virtualization?
  • Types of virtualization
  • Types of Virtualized devices
  • Virtualization with Linux
  • Virtual Machine Manager
  • Creating a guest
  • virt-install
  • virt-clone
  • virt-viewer
  • virt-v2v
  • Containers with virt manager
  • Xen with virt manager
  • KVM with virt manager
  • Xen vs. KVM
  • Using Xen
  • Xen kernel modifications
  • Containers
  • QEMU
  • Using qemu
  • QEMU monitor
  • QEMU monitor features
  • QEMU with a different architecture
  • Testing virtualization

Virsh command and XML

  • virsh command
  • virsh options
  • more virsh commands
  • virsh domain commands
  • more domain commands
  • some more virsh commands
  • working with VM XML
  • XML details
  • Creating a guest with virsh
  • libvirt
  • API for libvirt
  • Using libvirtd
  • libvirtd and QEMU

Linux Virtualization: Tools and Performance

  • Kernel configuration and virtualizaton
  • virtio drivers
  • measuring virtualization performance
  • perf kvm
  • Virtualization overhead
  • SPECvirt
  • kqemu
  • virtio
  • KSM
  • Linux bridging, TAP/TUN Interfaces
  • Open VSwitch
  • OpenStack
  • netcf

Linux Virtualization Internals

  • Intel Virtualization
  • Intel instructions for virtualization
  • Intel instructions and KVM
  • KVM as a non-privileged user
  • What does the KVM module do?
  • How does QEMU use KVM?
  • KVM ioctls
  • KVM Architecture specific details
  • Ethernet PCI Pass-Through
  • PCI Pass-through usage
  • SR-IOV
  • PCI pass-through limitations
  • virtio core API
  • kernel KVM support
  • Nova API
  • DPDK

Class Duration: Two days

Enrollment Form

Prerequisites: Good proficiency in C, and some experience working with a Linux kernel.

If you have any questions about the difficulty level of the class, please contact us at:  classes (at)

Optional: All attendees will get a Linux laptop to be used during the class. You have the option of purchasing this laptop with an additional course fee.

On-site: If you would like to arrange an on-site class, please contact us at: classes (at)

If you don't see this class scheduled in the timeframe/place of your preference, please let us know your preference for timeframe (which month etc.) and any particular geography preference. Send email with your interest to

Return to Top

Get training updates and Linux tips:

US Toll Free: 1 877 800 6873
Linux is a registered trademark of Linus Torvalds.
Copyright © 2000-2013 All rights reserved.
LinuxCertified, Inc: Linux Training, Services & Laptop Provider