Fixes and Enhancements

Slides:



Advertisements
Similar presentations
Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
Advertisements

EEE 435 Principles of Operating Systems Structure of I/O Software Pt II (Modern Operating Systems & 5.3.4)
ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets.
Transmission Control Protocol (TCP)
Intermediate TCP/IP TCP Operation.
CISCO NETWORKING ACADEMY PROGRAM (CNAP)
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
Chapter 7 – Transport Layer Protocols
Geoff Salmon, Monia Ghobadi, Yashar Ganjali, Martin Labrecque, J. Gregory Steffan University of Toronto.
RTL-8139 experimentation Setting up an environment for studying the Network Controller.
ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2009 Lab 3: Transmitting and Receiving Ethernet Packets.
Our ‘nic.c’ module We create a ‘character-mode’ device-driver for the 82573L NIC to use in futrure experiments.
Ext3 Journaling File System “absolute consistency of the filesystem in every respect after a reboot, with no loss of existing functionality” chadd williams.
Chapter 6. 2 Objectives You should be able to describe: Function and Parameter Declarations Returning a Single Value Pass by Reference Variable Scope.
Chapter Resynchsonous Stabilizer Chapter 5.1 Resynchsonous Stabilizer Self-Stabilization Shlomi Dolev MIT Press, 2000 Draft of Jan 2004, Shlomi.
1 Input/Output Chapter 3 TOPICS Principles of I/O hardware Principles of I/O software I/O software layers Disks Clocks Reference: Operating Systems Design.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
ISO Layer Model Lecture 9 October 16, The Need for Protocols Multiple hardware platforms need to have the ability to communicate. Writing communications.
NetSim ZigBee Simulation Code Walkthrough in 10 steps
ITEC 502 컴퓨터 시스템 및 실습 Chapter 8-1: I/O Management Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Segmentation & O/S Input/Output Chapter 4 & 5 Tuesday, April 3, 2007.
Hour 9 Network Hardware. What You’ll Learn in This Hour Bridges Hubs and switches Routers Network Address Translation.
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
A First Book of C++: From Here To There, Third Edition2 Objectives You should be able to describe: Function and Parameter Declarations Returning a Single.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Transmission Control Protocol
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
System calls for Process management
Linux Implementation of the TRILL protocol Syed Mohsin Kazmi, Mohsin Sardar, Syed Ali Khayam School of EECS National University of Sciences & Technology.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Identify basic switching concepts and the operation of Cisco switches.
Queuing Delay 1. Access Delay Some protocols require a sender to “gain access” to the channel –The channel is shared and some time is used trying to determine.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
LECTURE 12 NET301 11/19/2015Lect NETWORK PERFORMANCE measures of service quality of a telecommunications product as seen by the customer Can.
System calls for Process management Process creation, termination, waiting.
NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS ( NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS (PRACTICAL PART) Tutorial 4 : Chapter 7 Data & computer.
Data Link Control. The two main functions of the data link layer are data link control and media access control. The first, data link control, deals with.
Input/Output (I/O) Important OS function – control I/O
The Transport Layer Implementation Services Functions Protocols
TCP - Part II.
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Reliable Transmission
Chapter 9: Virtual Memory – Part I
Chapter 9: Virtual Memory
Data Communications and Networking Pipelined reliable data transfer
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Encapsulation/Decapsulation
Chapter 5 TCP Sliding Window
Transport Layer Unit 5.
Chapter 10 Data Link Control
Chapter 9: Virtual-Memory Management
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Computer-System Architecture
Operating Systems Chapter 5: Input/Output Management
Switching Techniques.
Net301 LECTURE 10 11/19/2015 Lect
Transmitter Interrupts
Chapter 2: Operating-System Structures
The Transmission Control Protocol (TCP)
Network Performance Definitions
The RealTek timer-count
Chapter 2: Operating-System Structures
Mr. M. D. Jamadar Assistant Professor
Error Checking continued
Using RealTek interrupts
Chapter 15. Satellite Services and the Internet
Presentation transcript:

Fixes and Enhancements We correct an omission in our 8139 device-driver’s ‘read()’ function and supply ‘flush()’ and ‘fsync()’ methods

Receiver Buffer ‘wraparound’ Our driver for the RealTek controller didn’t correctly handle the buffer’s wraparound Two disjoint memory-segments must be copied from this Buffer into user-space Packet-header Receive Buffer …data C R H D R data..… Received network-packet continues at the buffer beginning

‘wrapfix.c’ The code-changes needed for dealing with packet-wraparound are shown in this file You can replace the previous ‘my_read()’ driver-function with this revised version

Closing a device-file too soon Another problem that our previous drivers neglected to handle concerns cases when the ‘/dev/nic’ device-file is ‘closed’ before all packets that had been queued up for transmission have actually been sent out The driver’s ‘release()’ method performs a reset-operation, which disables the nic’s ability to finish any pending transmissions

Kernel calls ‘flush()’ Before closing a device-file, the kernel will call the driver’s ‘flush()’ function – unless the driver didn’t implement this method We can supply a ‘flush()’ method that will delay the kernel from attempting to ‘close’ the ‘/dev/nic’ device-file until after all of the packets that were previously written have in fact been successfully transmitted

Transmit Status of All Descriptors The TSAD register shows the descriptors which still have packets that are queued for transmission, and which descriptors have finished transmitting -- successfully or with transmission-errors T O K T O K T O K T O K T U N T U N T U N T U N T A B T A B T T A B T A B O W N O W N O W N O W N 0x60-0x61

Packet retransmission The RealTek Manual says packets which encounter TxErrors can be retransmitted by writing ‘1’ to bit #0 of TxConfig register int port = iobase + 0x30; // TxConfig outl( inl( port ) | 1, port ); // Retransmit