IEEE Boston Section Tech Site IEEE Logo

Serving Eastern Massachusetts

Course Description

Course Name: C12 - Embedded Linux Networking
Time & Date: 6:00 - 9:00 PM, Thursdays, May 10, 17, 24, 31
Location: Holiday Inn Select Hotel, 15 Middlesex Canal Park Road, Woburn, MA
Speaker: Mike McCullough, CEO, RTETC

Course Summary

This 4-day technical training course provides advanced training in Embedded Linux Networking and the design of networking applications in Embedded Linux. The first part of the course focuses on the BSD Stack and Socket applications development in an Embedded Linux context with a focus on application performance measurement and improvement. The latter part of the course covers Packet Management in UDP and TCP, IPv6 and integrating open-source network protocols in Embedded Linux.

Who Should Attend

The course is designed for real-time engineers who are developing advanced networked Linux applications for Embedded Linux distributions. It is also targeted at experienced developers requiring a refresher course on Linux Network Device Driver development.

Course Objectives

OUTLINE

Course Schedule Day 1

Introduction to Embedded Linux Networking

Getting Started with Linux Networking

Networking Basics

The OSI Model

Networking in Embedded Linux

Other Networking Models

Embedded Linux Networking Code Layout

Linux Networking References (Books and Online)

Sockets, Sockets Everywhere

Creating and Managing UDP and TCP Sockets

Socket Types and Socket Options

IO System Calls and Sockets

Other Linux Socket Capabilities

Netlink and Rtnetlink

Other Interconnects Using Sockets

The Linux TCP/IP Stack

Packet Handler Glue

TCP/IP Stack Initialization

Kernel Threading

Packet Queueing and the NET_RX_SOFTIRQ

Transport Layer De-Multiplexing

Internal Packet Routing

The in_device Structure

Security, Stackable Destination and XFRM

Some Practical Considerations

Linux Networking Code Structs

The sk_buff struct

Other Networking Structs

Socket Buffers and Memory

Heap-Based and Pre-Allocated Memory

Mbufs in BSD 4.4

Slab Allocations

Socket Buffer Management

Fragmentation and Segmentation

Allocation and Lists

Utility Functions

Client-Server Examples

UDP Client-Server Applications

TCP Client-Server Applications

Course Schedule Day 2

Sending Data through UDP and TCP

The Socket Layer

The Transport Layer

Initiating a Connection

Sending Data from a Socket via UDP

Sending Data from a Socket via TCP

TCP Output

Key TCP Data Structures

TCP Timers

Receiving Data through UDP and TCP

Receive-Side Packet Handling

Packet Reception in UDP

UDP Socket-level Receive

Receiving Data in TCP

TCP Receive State Processing

TCP Processing Data Segments in ESTABLISHED State

TCP TIME_WAIT State

TCP Socket-Level Receive

Course Schedule Day 3

The IP Network Layer

Routing Theory

IPv4 Routing and the Routing Cache

The Routing Policy Database

IP Protocol Initialization

The Route Cache

The RPDB, the FIB and the FIB Rules

Routing Input and Output Packets

Internet Peers and the Inet_peer Structure

The Address Resolution Protocol (ARP)

The Internet Control Message Protocol (ICMP)

Multicast and IGMP

Sending Packets from IP

Receiving Packets in IP

Network Device Driver Architecture

MAC and PHY Device Drivers

net_device and net_device_stats

Network Device Initialization

Device Discovery and Dynamic Initialization

Network Interface Registration

Network Interface Service Functions

Receiving and Transmitting Packets

Notifier Chains and Device Status Notification

Network Booting

Configuring and Booting Embedded Linux

TFTP and NFS

BOOTP and DHCP

Network Testing and Monitoring

Ad Hoc Approaches

Duplexing and Routing Considerations

The Netperf and Netserver Application

Other Linux Networking Tools

Monitoring, Measurement & Optimization

Course Schedule Day 4

IPv6

Addressing and Packet Format

IPv6 Socket Implementation in Linux

Fragmentation and Segmentation

IPv6 Output and Input

UDP and TCP in IPv6

ICMPv6

Neighbor Discovery

Multicasting in IPv6

AutoConfiguration and Routing

Common Embedded Networking Protocols

FTP

Telnet

RSH

Rlogin

Rexec

NTP and SNTP

PTP

SSL

PRNGD

SSH

What’s Missing?

Some Final Recommendations

Lecturer

Mike McCullough is President and CEO of RTETC, LLC. Mike has a BS in Computer Engineering and an MS in Systems Engineering from Boston University. A 20-year electronics veteran, he has held various positions at Tilera, Embedded Planet, Wind River Systems, Lockheed Sanders, Stratus Computer and Apollo Computer. RTETC, LLC is a provider of Eclipse-based software development tools, training and consulting services for the embedded systems market.

Decision (Run/Cancel) Date for this Courses is Tuesday, May 1, 2012

FEES

Payment received by April 26 : IEEE Members $390

Payment received by April 26 : Non-members $410

Payment received after April 26 : IEEE Members $410

Payment received after April 26 : Non-members $435

Register online here.