DOC PREVIEW
USF CS 635 - Network Interface Controller

This preview shows page 1-2-3-4-5-6 out of 19 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Exploring a modern NICToken RingEthernetEthernet LANEthernet Versus Token RingD-Link 24-port GbE SwitchOur ‘anchor’ clusterAcronymsHardware FeaturesExternal ArchitectureAccess to PRO/1000 registersi/o-memory remappingportability syntaxmodule_init()Slide 15Confusion in vendor’s manual?QuotationDevelopment ToolIn-class exerciseExploring a modern NICAn introduction to programming the Intel 82573L gigabit ethernet network interface controllerToken Ringhost-1 host-2 host-3 host-4Token Ring Media Access UnitTechnology developed by IBM in the 1960sEthernetTechnology designed by Bob Metcalf in 1973Ethernet LANhost-1 host-2 host-3host-4HUB“Collision Domain”CSMA/CD = “Carrier Sense Multiple Access/Collision Detection”Ethernet Versus Token RingETHERNETEthernet is the most widely used data sending protocol. Each computer listens to the cable before sending data over the network. If the network is clear, the computer will transmit. If another PC is already transmitting data, the computer will wait and try again when the line is clear. If two computers transmit at the same time a collision occurs. Each computer then waits a random amount of time before attempting to retransmit. The delay caused by collisions and retransmitting is minimal and does not normally affect the speed of transmission on the network.TOKEN RINGThe Token Ring protocol was developed by IBM but it has become obsolete in the face of ethernet technology. The computers are connected so that data travels around the network from one computer to another in a logical ring. If a computer does not have information to transmit, it simply passes the a token on to the next workstation. If a computer wishes to transmit and receives an empty token, it attaches data to the token. The token then proceeds around the ring until it comes to the computer for which the data is meant.Posted by Heather C Moll (Last Updated March 24 2004)D-Link 24-port GbE SwitchSwitched hub implements ‘store-and-forward’ technologyOur ‘anchor’ clusterD-Link 24-port 10/100/1000-Mbps Ethernet Switched Hubcomputer science department’s Local Area Networkanchor00anchor01anchor02anchor03anchor04anchor05anchor06anchor07Acronyms•PCI = Peripheral Component Interconnect•MAC = Media Access Controller•Phy = Physical-layer functions•AMT = Active Management Technology•LOM = LAN On Motherboard•BOM = Bill Of MaterialsHardware Features •32K configurable RX and TX packet FIFO•IEEE 802.3x Flow Control support•Host-Memory Receive Buffers 16K/256K•IEEE 802.3ab Auto-Negotiation•TCP/UDP checksum off-loading•Jumbo-frame support (up to 16KB)•Interrupt-moderation controlsExternal ArchitecturePCI/PCI-e Bus10/100/1000 PHYMAC/Controller MDI interface SM BusinterfaceEEPROM Flashinterface LEDindicators S/W Defined pins GMII/MII interface MDIO interfaceAccess to PRO/1000 registers•Device registers are hardware mapped to a range of addresses in physical memory •You obtain the location (and the length) of this memory-range from a BAR register in the nic device’s PCI Configuration Space•Then you request the Linux kernel to setup an I/O ‘remapping’ of this memory-range to ‘virtual’ addresses within kernel-spacei/o-memory remappingdynamicramnic registersvram IO-APIC Local-APIC userspaceAPIC registerskernel code/datanic registersvram‘virtual’ address-spacephysical address-space1-GB3-GBportability syntax•Linux provides device-driver writers with some macros for accessing i/o-memory:#include <asm/io.h>unsigned int datum; iowrite32( datum, address ); datum = ioread32( address );module_init()#include <linux/pci.h>#include <asm/io.h>#define E1000_STATUS 0x0008unsigned int iomem_base, iomem_size;void *io;// remap the device’s i/o-memory into kernel spacedevp = pci_get_device( VENDOR_ID, DEVICE_ID, NULL );if ( !devp ) return –ENODEV;iomem_base = pci_resource_start( devp, 0 );iomem_size = pci_resource_len( devp, 0 );io = ioremap_nocache( iomem_base, iomem_size );if ( !io ) return –ENOSPC;// read and display the nic’s STATUS registerdevice_status = ioread32( io + E1000_STATUS );printk( “ Device Status Register = 0x%08X \n”, status );0Device Status (0x0008)? 000 0 00 0 0 0 0 0GIOMasterEN0 0 00 0 0 0PHYresetASDVILOSSLU0TXOFF0 0FD 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0FunctionIDLU 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16SPEEDFD = Full-DuplexLU = Link UpTXOFF = Transmission PausedSPEED (00=10Mbps,01=100Mbps, 10=1000Mbps, 11=reserved)ASDV = Auto-negotiation Speed Detection Value82573Lsome undocumented functionality?Confusion in vendor’s manual? •The manual shows Device Status as a ‘read-only’ register, but later on it states that bit #10 “is cleared by writing 0b to it.” •Bit #31 in Device Status register is marked ‘reserved’ in the Developer’s Manual (with initial value shown as ‘0’), but we observe it’s value being ‘1’ on ‘anchor’ machines•Do these represent errata? omissions?QuotationMany companies do an excellent job of providing information to help customers use their products... but in the end there's no substitute for real-life experiments: putting together the hardware, writing the program code, and watching what happens when the code executes. Then when the result isn't as expected -- as it often isn't -- it means trying something else or searching the documentation for clues.-- Jan Axelson, author, Lakeview Research (1998)Development Tool•Our ‘igbe.c’ module creates a pseudo-file that shows register-values of importance in receiving and transmitting data-packets using the Intel GigaBit Ethernet controller•Can be useful for debugging device-driver software – and for gaining insights about confusing issues in the vendor’s manualIn-class exercise•Experiment with writing all 0’s into the nic’s Device Status register, and see if values of any bits actually get changed; then also try writing all 1’s into this register, in order to discover which bits indeed are “read-only”•You can use our ‘gbstatus.c’ module as a starting-point for these


View Full Document

USF CS 635 - Network Interface Controller

Download Network Interface Controller
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Network Interface Controller and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Network Interface Controller 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?