Network Devices COMS W6998 Spring 2010 Erich Nahum.

Slides:



Advertisements
Similar presentations
Device Layer and Device Drivers
Advertisements

COMS W6998 Spring 2010 Erich Nahum
Virtual Machine Queue Architecture Review Ali Dabagh Architect Windows Core Networking Don Stanwyck Sr. Program Manager NDIS Virtualization.
1 Linux Networking and Security Chapter 2. 2 Configuring Basic Networking Describe how networking devices differ from other Linux devices Configure Linux.
1 Version 3 Module 8 Ethernet Switching. 2 Version 3 Ethernet Switching Ethernet is a shared media –One node can transmit data at a time More nodes increases.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Network Sniffer.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public BSCI Module 7 Lesson 2 1 IP Multicasting: IGMP and Layer 2 Issues.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Linux Networking Overview COMS W Spring 2010.
A “real” network driver? We want to construct a Linux network device-driver that is able to send and receive packets.
1 Network Packet Generator Characterization presentation Supervisor: Mony Orbach Presenting: Eugeney Ryzhyk, Igor Brevdo.
Packet Capture & Analyze
Supporting ethtool with Linux Integration Service Open Source Technology Center Microsoft.
Detection of Promiscuous nodes Using Arp Packets By Engin Arslan.
1 Network Packet Generator Final Presentation Presenting: Igor Brevdo Eugeney Ryzhyk, Supervisor: Mony Orbach.
CECS 474 Computer Network Interoperability Tracy Bradley Maples, Ph.D. Computer Engineering & Computer Science Cal ifornia State University, Long Beach.
Chapter 11 Extending LANs: Fiber Modems, Repeaters, Bridges, & Switches Hub Bridge Switch.
TCP/IP Networking sections 13.2,3,4,5 Road map: TCP, provide connection-oriented service IP, route data packets from one machine to another (RFC 791) ICMP,
Q and A for Ch. 17 CS 332, Spring Fiber Modems Q: Why use fiber modem extensions? Is it to save money on not having to use as much fiber (otherwise.
CSCD433 Advanced Networks Fall 2011 Raw vs. Cooked Sockets.
Traffic control and Quality of Service
Real-time Systems Lab, Computer Science and Engineering, ASU Linux Input Systems (ESP – Fall 2014) Computer Science & Engineering Department Arizona State.
Network Admin Course Plan Accede Institute Of Science & Technology.
Intro. to Networks This lecture will consist Internet and Ethernet short history Layer model (ISO and IP) Routing and routers Linux routing table PPP short.
Fall 2004FSU CIS 5930 Internet Protocols1 Network Devices Reading: Chapter 5.
Microsoft Windows Server 2003 TCP/IP Protocols and Services Technical Reference Slide: 1 Lesson 9 Internet Group Management Protocol (IGMP)
LWIP TCP/IP Stack 김백규.
© 2010 IBM Corporation Plugging the Hypervisor Abstraction Leaks Caused by Virtual Networking Alex Landau, David Hadas, Muli Ben-Yehuda IBM Research –
Raw Sockets Vivek Ramachandran. A day in the life of Network Packet.
11 NETWORK CONNECTION HARDWARE Chapter 3. Chapter 3: NETWORK CONNECTION HARDWARE2 NETWORK INTERFACE ADAPTER  Provides the link between a computer and.
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.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
ENW-9800 Copyright © PLANET Technology Corporation. All rights reserved. Dual 10Gbps SFP+ PCI Express Server Adapter.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Cisco 3 – Switching Concepts Perrine. J Page 16/1/2016 Module 4 The use of bridges and switches for segmentation results in ____? 1.Multiple broadcast.
Ethernet Network Fundamentals. Objectives Identify the basic characteristics of network media used in Ethernet. Describe the physical and data link features.
EECB 473 DATA NETWORK ARCHITECTURE AND ELECTRONICS PREPARED BY JEHANA ERMY JAMALUDDIN Basic Packet Processing: Algorithms and Data Structures.
INTRO TO DEVICE DRIVERS ARP & RARP IMPLEMENTATION B.ANURADHA C.MANOJ KUMAR T.CHITTI BABU BY.
Semester 3—LAN Switching Chapter 2 Objectives  By the end of this chapter we will be able to perform tasks related to: – Various LAN Communication Problems.
Media Access Control (MAC) addresses in the network access layer ▫ Associated w/ network interface card (NIC) ▫ 48 bits or 64 bits IP addresses for the.
Virtual Machine Queue Driver Development Sambhrama Mundkur Sr. Software Design Engineer Core Networking
1 Ch 9 Hardware Addressing and Frame Type Identification.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
Porting IPN2220AP on Embedded System SW Engineer:Yeh, Chih Hao, Embedded System Inprocomm, Inc, Taiwan.
NetPro-ITI Ethernet LANs. Microsegmentation Microsegmentation of the Network.
Slide #1 CIT 380: Securing Computer Systems TCP/IP.
1 Objectives Identify the basic components of a network Describe the features of Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6)
© Jörg Liebeherr (modified by M. Veeraraghavan) 1 Point-to-Point Protocol Data Link Layer Loopback ARP and RARP.
Fall 2004FSU CIS 5930 Internet Protocols1 Address Resolution Protocol (ARP) Reading: Chapter 15.
The OSI Model. Understanding the OSI Model In early 1980s, manufacturers began to standardize networking so that networks from different manufacturers.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
An open source user space fast path TCP/IP stack and more…
Spring Ch 17 Internetworking Concepts, Architecture, and Protocols Part III Internetworking.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Network drivers Thomas Petazzoni.
Chapter4 Packet and Protocol.
Chapter 5 Network and Transport Layers
Zero-copy Receive Path in Virtio
Linux Details: Device Drivers
sudo ./snull_load Two interfaces created: sn0, sn1
Network Load Balancing Topology
– Chapter 5 – Secure LAN Switching
Slave cores Etherbone Accessible device Etherbone Accessible device E
Network Administration CNET-443
Computer Networks 9/17/2018 Computer Networks.
Chapter 3: Windows7 Part 4.
Ethernet : Framing and Addressing
Introduction to Data Link Layer
Data Link Issues Relates to Lab 2.
Linux Details: Device Drivers
ECE 671 – Lecture 8 Network Adapters.
Presentation transcript:

Network Devices COMS W6998 Spring 2010 Erich Nahum

Network Devices An interface between software-based protocols and network adapters (hardware). Two major functions: Abstract from the technical properties of network adapters (that implement different layer-1 and layer-2 protocols and are manufactured by different vendors). Provide a uniform interface for access by protocol instances. Represented in Linux by a struct net_device include/linux/netdevice.h

Struct net_device_ops The methods of a network interface. The most important ones: ndo_init(), called once when the device is registered ndo_open(), called when the network interface is up'ed ndo_close(), called when the network interface is down'ed ndo_start_xmit(), to start the transmission of a packet ndo_tx_timeout(), callback for when tx doesn’t progress in time And others: ndo_get_stats(), to get statistics ndo_do_ioctl(), to implement device specific operations ndo_set_rx_mode(), to select promiscuous, multicast, etc. ndo_set_mac_address(), to set the MAC address ndo_set_multicast_list(), to set multicast filters The netdev_ops field in the struct net_device structure must be set to point to the struct net_device_ops structure.

net_device members char name[IFNAMSIZ] - name of the network device, e.g., eth0-eth4, lo (loopback device) unsigned int mtu – Maximum Transmission Unit: the maximum size of frame the device can handle. unsigned int irq – irq number. unsigned char *dev_addr : hw MAC address. int promiscuity – a counter of the times a NIC is told to set to work in promiscuous mode; used to enable more than one sniffing client. struct net_device_stats stats – statistics struct net_device_ops *netdev_ops – netdev ops

flags: properties of the network device IFF_UP: the device is on. IFF_BROADCAST: the device is broadcast-enabled. IFF_DEBUG: debugging is turned on. IFF_LOOKBACK: the device is a loopback network device. IFF_POINTTOPOINT: this is a point-to-point connection. IFF_PROMISC: this flag switches the promiscuous mode on. IFF_MULTICAST: activates the receipt of multicast packets. IFF_NOARP: doesn’t support ARP net_device->flags

features: features of the network device NETIF_F_SG: supports scatter-gather. NETIF_F_IP_CSUM: supports TCP/IP checksum offload. NETIF_F_NO_CSUM: checksum not needed (loopback). NETIF_F_HW_CSUM: supports all checksums. NETIF_F_FRAGLIST: supports scatter-gather. NETIF_F_HW_VLAN_TX: hardware support for VLANs. NETIF_F_HW_VLAN_RX: hardware support for VLANs. NETIF_F_GSO: generic segmentation offload NETIF_F_GRO: generic receive offload. NETIF_F_LRO: large receive offload. net_device->features

net_device allocation Allocated using: struct net_device *alloc_netdev(size, mask, setup_func); size – size of our private data part mask – a naming pattern (e.g. “eth%d”) setup_func – A function to prepare the rest of the net_device. And deallocated with void free_netdev(struct *net_device); For Ethernet we have a specialized version: struct net_device *alloc_etherdev(size); which calls alloc_netdev(size, “eth%d”, ether_setup);

net_device registration Registered via: int register_netdev(struct net_device *dev); int unregister_netdev(struct net_device dev);

Utility Functions netif_start_queue() Tells the kernel that the driver is ready to send packets netif_stop_queue() Tells the kernel to stop sending packets. Useful at driver cleanup of course, but also when all transmission buffers are full. netif_queue_stopped() Tells whether the queue is currently stopped or not netif_wake_queue() Wakeup a queue after a netif_stop_queue(). The kernel will resume sending packets

Network Device Interface driver.c net_tx net_interrupt net_rx skb net_start_xmit net_opennet_stop net_device dev.c netif_rx dev->hard_start_xmitdev->opendev->stop dev_queue_xmit dev_opendev_close Higher Protocol Instances Network devices (adapter-independent) Network devices interface Network driver (adapter-specific) Abstraction from Adapter specifics