Real-Time Networking for Quality of Service on TDM based Ethernet

Similar documents
Using Time Division Multiplexing to support Real-time Networking on Ethernet

Real-Time Networking for Quality of Service on TDM based Ethernet

Quality of Service in the Internet

H3C S9500 QoS Technology White Paper

Hardware/Software Codesign of Schedulers for Real Time Systems

Quality of Service in the Internet

Real-Time Protocol (RTP)

Design and Performance Evaluation of a New Spatial Reuse FireWire Protocol. Master s thesis defense by Vijay Chandramohan

High Fidelity Simulation of Distributed Applications

Quality of Service in the Internet. QoS Parameters. Keeping the QoS. Leaky Bucket Algorithm

A Preferred Service Architecture for Payload Data Flows. Ray Gilstrap, Thom Stone, Ken Freeman

Quality of Service (QoS)

Enhanced Transmission Selection IEEE 802.1Qaz

Operating Systems. 17. Sockets. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Linux IP Networking. Antonio Salueña

Kernel Korner. Analysis of the HTB Queuing Discipline. Yaron Benita. Abstract

Performance Evaluation of Scheduling Mechanisms for Broadband Networks

Configuring QoS. Finding Feature Information. Prerequisites for QoS

Lecture 24: Scheduling and QoS

Lecture Outline. Bag of Tricks

Linux Traffic Control

Quality of Service Mechanism for MANET using Linux Semra Gulder, Mathieu Déziel

CSE398: Network Systems Design

Grandstream Networks, Inc. GWN7000 QoS - VoIP Traffic Management

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ

Informal Quiz #01: SOLUTIONS

Generic Architecture. EECS 122: Introduction to Computer Networks Switch and Router Architectures. Shared Memory (1 st Generation) Today s Lecture

The Network Layer and Routers

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://

Computer Networks. ENGG st Semester, 2010 Hayden Kwok-Hay So

Configuring global CAR 73 Overview 73 Configuring aggregate CAR 73 Configuration procedure 73 Configuration example 73

EECS 122: Introduction to Computer Networks Switch and Router Architectures. Today s Lecture

EC1009 HIGH SPEED NETWORKS UNIT - I HIGH SPEED NETWORKS

Internet Services & Protocols. Quality of Service Architecture

IMPLEMENTATION OF CONGESTION CONTROL MECHANISMS USING OPNET

QoS Configuration. Overview. Introduction to QoS. QoS Policy. Class. Traffic behavior

3. Quality of Service

Technology for Adaptive Hard. Rui Santos, UA

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

IP QOS Theory and Practice. eng. Nikolay Milovanov CCIE SP# 20094

UNIT 2 TRANSPORT LAYER

Configuring priority marking 63 Priority marking overview 63 Configuring priority marking 63 Priority marking configuration example 64

Network Management & Monitoring

TD(07)037. The 10th COST 290 MC Meeting. Technische Universität Wien Wien, Austria October 1 2, 2007

UNIT IV TRANSPORT LAYER

Basics (cont.) Characteristics of data communication technologies OSI-Model

CSE398: Network Systems Design

Internet Quality of Service: an Overview

ECSE-4670: Computer Communication Networks (CCN) Informal Quiz 3

Lecture 9: Bridging & Switching"

Master Course Computer Networks IN2097

Master Course Computer Networks IN2097

Queuing Mechanisms. Overview. Objectives

Principles. IP QoS DiffServ. Agenda. Principles. L74 - IP QoS Differentiated Services Model. L74 - IP QoS Differentiated Services Model

Advanced Lab in Computer Communications Meeting 6 QoS. Instructor: Tom Mahler

Contents. QoS overview 1

The MAC Address Format

fair-queue aggregate-limit

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP

Overview Computer Networking What is QoS? Queuing discipline and scheduling. Traffic Enforcement. Integrated services

Configuring QoS. Finding Feature Information. Prerequisites for QoS. General QoS Guidelines

Enhanced Ethernet Switching Technology. Time Applications. Rui Santos 17 / 04 / 2009

Real-Time Communication Support for Embedded Linux over Ethernet

BROADBAND AND HIGH SPEED NETWORKS

Prof. Dr. Abdulmotaleb El Saddik. site.uottawa.ca mcrlab.uottawa.ca. Quality of Media vs. Quality of Service

Introduction to Routers and LAN Switches

Introduction. Application Performance in the QLinux Multimedia Operating System. Solution: QLinux. Introduction. Outline. QLinux Design Principles

BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT COMPUTER NETWORKS APRIL 2015 EXAMINERS REPORT

Ethernet Hub. Campus Network Design. Hubs. Sending and receiving Ethernet frames via a hub

CS 5114 Network Programming Languages Data Plane. Nate Foster Cornell University Spring 2013

Multimedia Applications over Packet Networks

Midterm II December 4 th, 2006 CS162: Operating Systems and Systems Programming

Computer Networks Principles LAN - Ethernet

Application Note How to use Quality of Service

QoS on Low Bandwidth High Delay Links. Prakash Shende Planning & Engg. Team Data Network Reliance Infocomm

Advanced Computer Networks

Cross-Layer Architecture for H.264 Video Streaming in Heterogeneous DiffServ Networks

Outline: Connecting Many Computers

Understanding How Routing Updates and Layer 2 Control Packets Are Queued on an Interface with a QoS Service Policy

CSE398: Network Systems Design

Router Architectures

RT extensions/applications of general-purpose OSs

Topic & Scope. Content: The course gives

CCNA Exploration1 Chapter 7: OSI Data Link Layer

Deterministic Communications for Protection Applications Over Packet-Based Wide-Area Networks

White Paper Enabling Quality of Service With Customizable Traffic Managers

PON Functional Requirements: Services and Performance

LS Example 5 3 C 5 A 1 D

Networked Control Systems for Manufacturing: Parameterization, Differentiation, Evaluation, and Application. Ling Wang

Multimedia Networking and Quality of Service

Radyne s SkyWire Gateway Quality of Service

Managing and Securing Computer Networks. Guy Leduc. Chapter 2: Software-Defined Networks (SDN) Chapter 2. Chapter goals:

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Priority Traffic CSCD 433/533. Advanced Networks Spring Lecture 21 Congestion Control and Queuing Strategies

Lecture 9: Bridging. CSE 123: Computer Networks Alex C. Snoeren

Quality of Service II

Chapter 8 LAN Topologies

QoS Technology White Paper

QoS MIB Implementation

Transcription:

Real-Time Networking for Quality of Service on TDM based Ethernet Badri Prasad Subramanyan Master s Thesis Defense 26 th Jan 2005 Committee: Dr. Douglas Niehaus Dr. David Andrews Dr. Jerry James

Presentation Outline Introduction Related Work Objectives Background Information Implementation Details Performance Evaluation Conclusion Future Work

Introduction Real-time applications span across multiple systems. Network delays have to be predictable to enable real-time applications. Present technology - Ethernet CSMA/CD protocol. Collisions retransmissions. Not deterministic. Cannot support real-time applications.

Related Work Hardware Solutions Shared Memory Methods Switched Ethernet Token Passing Protocols Software Solutions RTnet Hard real-time network protocol stack for RTAI. Rether Real-time Ethernet protocol. Traffic Shaping Master/Slave Protocols

Objectives Support real-time applications which span across multiple systems in a LAN. Predictable end-to-end packet transfer time. Devise a software based solution which works using the present Ethernet hardware. Modifications should not affect existing protocols. Proposed Solutions Provide Quality of Service for real-time processes. Time Division Multiplexing to make the network deterministic. Use the framework provided by KURT-Linux.

Background Information UTime DSKI/DSUI Netspec Group Scheduling Framework Linux Traffic Control Linux Network Stack Transmit packet flow Receive packet flow

UTime Periodic interrupt at a rate of once for every 10ms in Linux 2.4.x Timer resolution not sufficient for real-time requirements. One-shot mode interrupts the kernel at specified times. Timer bottom half execution in the hardirq context. Utime timers were used for accurate control over time.

DSKI / DSUI Debugging kernel code is complex Kernel source code is very big and complex. Large amount of concurrency Kernel does not/cannot provide usage of break points in the code. Data Stream Kernel Interface (DSKI) Instrumentation points in the kernel to log an event. Interface should be configured to log events as desired. Post processing filters. Data Stream Visualizer. Data Stream User Interface (DSUI) Log events in user space.

Netspec Provides a framework to centrally control daemons running on other systems. Control distributed applications. Transfer of files to and from daemons. Takes a script to specify experimental parameters. Scalable Reproducible Used to control different experiments in a LAN.

Group Scheduling Framework Linux scheduler is a priority-based scheduler. Computational Components HardIrqs executed at the earliest. SoftIrqs deferrable functions. Process scheduled by the scheduler. Each process has a static and dynamic priority. Process scheduled based on the goodness value. No direct control over the scheduling policy.

Group Scheduling Framework Group Scheduling framework provides Unified scheduling model. Configurable hierarchic decision structure which decides which computation to execute. Explicit control of computational components.

Group Scheduling Framework Group Place holder for other entities. Member Computational component which can be a hardirq, softirq, process or a group. Scheduler Decision routine which chooses a component for execution.

Group Scheduling Framework Function pointer hooks to control scheduling and execution. Each of the hooks point to the Vanilla Linux routines by default. These hooks can be mapped to other routines to define customized routines. Gives the flexibility to control scheduling and execution of selective computational components.

Linux Traffic Control Tools for managing & manipulating the transmission of packets. Net_device_layer of Linux protocol stack.

Linux Traffic Control Components of Traffic Control Queuing Discipline a set of queues which are used to hold packets. Classes a class represents a class of packets and is associated with a queuing disciplines. Filters filters are used to classify packets.

Linux Network Stack Explanation can be split into 2 main parts Transmit side The code which transmits the locally generated packet out of the system. This code splits the message to be transmitted, embeds it into a packet and transmit it out of the system. Receive side The code which processes a packet received by the system. This code de-fragments the received packet and sends it to the appropriate user-level process. DSKI instrumentations were used to understand the packet flow through the Linux network stack.

Transmit Packet flow The Application layer uses a system call to transmit a packet. The Transport layer (TCP/UDP) protocol stores the message in the sk_buff structure. The Network layer (IP) protocol does a route lookup based on the destination IP address. The Data Link layer transmits the packet out of the device.

Transmit Packet Flow

Receive Packet Flow The Application layer uses a system call to receive a packet. The process waits in the Transport layer queue till the packet arrives. The Data Link layer receives a packet. The Network layer (IP) protocol verifies that the packet is destined to this system. The Transport layer (TCP/UDP) protocol adds the packet to the Transport layer queue and schedules the process which is waiting for this packet.

Receive Packet Flow

Implementation Details Transmit side Classification of packets Processing of real-time packets Receive side Classification of packets Processing of real-time packets User Interface Setting priority on Transmit side Setting priority on Receive side Adding/Removing real-time processes

Linux Softirqs Softirqs in Linux 2.4.x HI_SOFTIRQ processes the high priority bottom halves and tasklets. NET_TX_SOFTIRQ transmits a packet out of the system. NET_RX_SOFTIRQ processes a packet which is received on the system. TASKLET_SOFTIRQ processes the low priority tasklets.

Classification on Transmit side Packet classification was done in the Linux Traffic Control. Connection or flow was identified uniquely using port numbers. A new queuing discipline TDM queue was developed. Contains a single FIFO queue by default. Can be configured to contain more than one queue. Each queue is associated with a particular priority. Each queue enqueues packets pertaining to a connection.

TDM queue Packets are enqueued in different queues based on their priority. Dequeueing of packet starts from the queue with the highest priority. The default queue is the last queue to be processed.

Group Scheduling Framework - TDM Timer_BH is processed first. NET_TX_SOFTIRQ has the highest priority during transmission time slot. Other softirqs are processed sequentially NET_KFREE_SKB_SO FTIRQ frees the packet after transmission.

Receive side Classification of packets. Reduce the real-time packet processing time. Processing the real-time packets before the non real-time packets. Reduce the wait time for a real-time packets in the Transport layer queue.

Classification on Receive side Packet classification was done using a queuing discipline on the receive side. Connection or flow was identified using the port numbers. The queuing discipline on receive side Contains a single FIFO queue by default. Can be configured to contain more than one queue. Each queue is associated with a particular priority. Each queue enqueues packets pertaining to a connection.

Modifications to Receive Softirq NET_RX_SOFTIRQ was split into 3 parts NET_RX_SOFTIRQ responsible for classifying a packet and enqueuing it appropriate queue. NET_RX_PRIORITY_PROCESS_SOFTIRQ responsible for processing the priority packets present in the priority queues. NET_RX_NORMAL_PROCESS_SOFTIRQ responsible for processing the non-priority packets present in the default queue.

Queue on Receive Side Packets are enqueued in different queues based on their priority. Dequeueing takes place based on the priority of the queue NET_RX_PRIORITY_PROCE SS_SOFTIRQ. The default queue is scheduled to be processed after all the priority queues are processed NET_RX_NORMAL_PROCE SS_SOFTIRQ.

Priority Group Reduce the wait time in the Transport layer queue. Addition of Priority Group to the Group Scheduling Framework. Contains all real-time processes. A process in the Priority group is scheduled once the packet corresponding to this process reaches the transport layer queue.

Real-Time Networking Model

User Interface User interface in TDM /dev/tdm_controller pseudo device. The loadable module to interface with the device. This module was enhanced to configure the device for QoS changes. User-level program with command line options. Set priority on the transmit side. Set priority on the receive side. Add/remove processes from the Priority group.

Setting Priority on Transmit/Receive side Command: tdm send <# of queues> <list of (port# priority)> tdm recv <# of queues> <list of (port# priority)> tdm user-level routine. send/recv set the transmit/receive queues. # of queues - Number of queues to create on the transmit side. Port# - the port number which needs to be prioritized. Priority the priority of the port number. (Smaller number has higher priority)

Add/Remove prioritized process Command: tdm add process <list of process Ids> tdm remove process <list of member Ids> Tdm user-level routine. Add process adds a process to the Priority group. Remove process removes a process from the Priority group. Process ID Unique identifier for each process on Linux. Member ID Unique identifier for a Group Scheduling member.

Performance Evaluation End-to-End packet transfer time for a single realtime process. End-to-End packet transfer time for a single realtime process with background processes. End-to-End packet transfer time for different TDM schedules. Packet processing time on the transmit and receive side of the network stack. Visualization of the output.

Test Setup LAN with 4 systems connected using a 100 Mbps hub. Time synchronization master. Transmission slot time 260s (220 s transmission time + 40 s buffer time). Total transmission cycle of 1040 s. 64 bytes of data.

End-to-End Packet Transfer Time Single real-time application.

End-to-End Packet Transfer Time Real-time/non real-time process with other background processes.

Packet Processing Time Packet processing time in the kernel.

Pipeline Computation 3-stage pipeline computation. LAN with 4 systems using a 100 Mbps hub. Time synchronization master. Transmission slot time 260s (220 s transmission time + 40 s buffer time) Total transmission cycle of 1040 s.

Pipeline Computation Visualization

Pipeline Computation Pipeline computation gives a real-world distributed application scenario. The packet processing time on the transmit side varies depending on the availability of the transmission time slot. The packet processing time on the receive side does not vary much. The end-to-end packet transfer time is comparable to half total transmission time cycle.

Conclusion Differentiation of real-time and non real-time packets in the network stack was achieved. Predictable end-to-end transfer time was achieved in a LAN. This software solutions was implemented on the standard Ethernet hardware. The changes do not require any modifications to the protocols used in Linux.

Future Work Time Constraint in Quality of Service Each process has a set of QoS parameters. Each process should negotiate QoS with the system based on its QoS parameters. System should commit to provide desired QoS only when it has the resources. Resource Reservation Protocol (RSVP) Extend QoS beyond a single LAN. RSVP reserves resources in the intermediate nodes for an Internet connection. The real-time networking module can interact with the RSVP protocol to reserve resources on nodes beyond the LAN.

Thank you