UDI Network Drivers Network Interface Metalanguage Barry Feild SCO Server Products Group

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
IPV6. Features of IPv6 New header format Large address space More efficient routing IPsec header support required Simple automatic configuration New protocol.
TCP-IP Primer David Cozens. Targets Have a basic understanding of Ethernet network technology Be aware of how this technology is applied on the 5000 series.
CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.ICND1 v1.0—1-1 Building a Simple Network Understanding the TCP/IP Transport Layer.
TRANSPORT LAYER  Session multiplexing  Segmentation  Flow control (TCP)  Connection-oriented (TCP)  Reliability (TCP)
Lecture 2 Protocol Layers CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger.
PC To GT Program Load Shachar Rosenberg Alex Normatov Technion - Digital Lab.
t Popularity of the Internet t Provides universal interconnection between individual groups that use different hardware suited for their needs t Based.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Application Layer PART VI.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao
Chapter 9 Hardware Addressing & Frame Type Identification EE 526 Presentation by Ryan Star.
USB 2.0 INTRODUCTION NTUT CSIE 學 生:許家豪 指導教授:柯開維教授.
Jan 10, 2008CS573: Network Protocols and Standards1 Virtual LANs Network Protocols and Standards Winter
Gursharan Singh Tatla Transport Layer 16-May
Hardware Interface Design Patterns Ahmet Selman Bozkır – Hacettepe Univ.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Distributed systems – Part 2  Bluetooth – 2 nd set of slides Anila Mjeda.
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
Real-Time Concepts for Embedded Systems Author: Qing Li with Caroline Yao ISBN: CMPBooks.
Signature Verbs Extension Richard L. Graham. Data Integrity Field (DIF) Used to provide data block integrity check capabilities (CRC) for block storage.
Midterm Review - Network Layers. Computer 1Computer 2 2.
© 2003, The Technology Firm TCP Checksum Errors.
LWIP TCP/IP Stack 김백규.
Chapter 7 Low-Level Protocols
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 16.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
UDI Tutorial & Driver Walk-Through Part 2 Kurt Gollhardt SCO Core OS Architect
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
Transmission Control Protocol
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.
Network Programming Eddie Aronovich mail:
KeyStone Training Multicore Navigator: Packet DMA (PKTDMA)
UDI Tutorial & Driver Walk-Through Part 1 Kurt Gollhardt SCO Core OS Architect
1 DSP handling of Video sources and Etherenet data flow Supervisor: Moni Orbach Students: Reuven Yogev Raviv Zehurai Technion – Israel Institute of Technology.
Virtual Machine Queue Driver Development Sambhrama Mundkur Sr. Software Design Engineer Core Networking
Lectu re 1 Recap: “Operational” view of Internet r Internet: “network of networks” m Requires sending, receiving of messages r protocols control sending,
Chapter 9 Hardware Addressing and Frame Type Identification 1.Delivering and sending packets 2.Hardware addressing: specifying a destination 3. Broadcasting.
1 Presented By: Eyal Enav and Tal Rath Eyal Enav and Tal Rath Supervisor: Mike Sumszyk Mike Sumszyk.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 2 Computer-System Structures Slide 1 Chapter 2 Computer-System Structures.
NetCP - NWAL API Flow. NetCP (HW,SW) Overview NWAL Feature Overview Data path offload Control configuration –Blocking / Non Blocking support –L2: MAC.
Intel Open Source Technology Center Lu Baolu 2015/09
NS Training Hardware Traffic Flow Note: Traffic direction in the 1284 is classified as either forward or reverse. The forward direction is.
UDI Advanced Topics DMA and Interrupts Robert Lipe UDI Development Team Lead
DMA Driver APIs DMA State Diagram Loading Driver and Opening Channel DMA Channel Attributes Loading Data to a Channel Unloading Data from a Channel.
*All other brands and names are the property of their respective owners. Slide 1 ® UDIG Driver Test Suite Gian-Carlo Bava Barry Feild.
UDI Technology Benefits Slide 1 Uniform Driver Interface UDI Technology Benefits.
© 2002, Cisco Systems, Inc. All rights reserved..
UDI Architecture In-Depth Robert Lipe UDI Development Team Lead
LonWorks Introduction Hwayoung Chae.
Point-Point Protocol (PPP) by William F. Widulski.
Networking CS 3470, Section 1 Sarah Diesburg
The Transport Layer Implementation Services Functions Protocols
Networking CS 3470, Section 1 Sarah Diesburg
What the OSI Protocol Layers Do
Data Link Layer What does it do?
An NP-Based Router for the Open Network Lab
Chapter 5 Network and Transport Layers
Data Link Issues Relates to Lab 2.
An NP-Based Router for the Open Network Lab Overview by JST
Next steps for SPP & ONL 2/6/2007
Process-to-Process Delivery:
Implementing an OpenFlow Switch on the NetFPGA platform
CPEG514 Advanced Computer Networkst
Networking CS 3470, Section 1 Sarah Diesburg
Transport Layer 9/22/2019.
Presentation transcript:

UDI Network Drivers Network Interface Metalanguage Barry Feild SCO Server Products Group

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 2 Agenda SCO UDI Network Driver Architecture Network Interface Metalanguage Features Network Driver Initialization Network Driver Operations Functional Comparison of MDI and UDI

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 3 UDI Network Driver Architecture UDI Networking Environment

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 4 SCO Network Driver Architecture Initial Release

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 5 SCO Network Driver Architecture shrk UDI Driver

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 6 Network Interface Metalanguage UDI and Native Network Driver Comparison UDI Advantages –Common programming model –Portability –Binary compatibility –Implicit MP synchronization –Simple ND interface UDI Challenges –New technology

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 7 Network Interface Metalanguage Network Driver/Network Service Requestor Interface NIM: a universal set of connectionless network-related functions ND’s primary task is send/receive data Single NSR-ND Interface active at any given time; separate channels are defined for: –control/status –transmit data –receive data

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 8 Network Interface Metalanguage Network Service Requestor Responsibilities Builds datalink headers for transmit packets Parse datalink headers on receive packets; NSR may perform SAP de- multiplexing Supports various MAC address lengths up to 20 bytes; not hard coded at a fixed size (such as 6 bytes)

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 9 Network Interface Metalanguage NSR-ND Channels Control Channel –Bind/Unbind ND and NSR –Network Driver control operations (link state, MAC address registration, multicasting, statistics, etc.) Receive Data Channel Transmit Data Channel

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 10 Network Interface Metalanguage Flow Control Transmit Flow Control –Tx control blocks owned by ND, loaned to NSR –ND returns control blocks to NSR on tx complete –NSR never allocates transmit blocks Receive Flow Control –Rx control blocks owned by NSR, filled by ND –ND never allocates receive buffers –Rx buffers may be recycled by NSR

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 11 Network Interface Metalanguage Hardware Checksum Offloads Buffer tags used to support CRC offload –udi_buf_tag_compute() –udi_buf_tag_apply() Transmit checksum capability handled separately from Receive checksum capability Buffer tags may be used for arbitrary per-buffer data

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 12 Network Driver Initialization Static Driver Properties Static Driver Properties –Region Declarations –Parent/Child/Internal bind_ops Declarations –Custom Declarations »Adapter-specific configuration parameters »ND reads these attributes on link-enable requests using udi_instance_attr_get()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 13 Network Driver Initialization Network Driver Channel Ops Vector Registration Control channel ops - udi_nd_ctrl_ops_t –channel events –bind/unbind/enable/disable –control requests (MAC addrs, multicasting, stats) Transmit channel ops - udi_nd_tx_ops_t –normal/expedited transmit requests Receive channel ops - udi_nd_rx_ops_t –NSR gives receive control blocks/buffers to ND

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 14 Network Driver Initialization UDI Control Block Registration Control blocks (and Ops vectors) registered in udi_init_info structures: –udi_cb_init_t –udi_ops_init_t All channel operations are done with appropriate ctrl or transfer control block All types of control blocks may be allocated internally with udi_cb_alloc()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 15 Network Driver Initialization Network Driver Instantiation Parent driver (Bus Bridge) instantiated, mgmt channel established; MA sends enumeration request to parent MA creates ND instance (primary and secondary regions, mgmt channel, internal bind channels) that corresponds to parent enumeration response info MA issues udi_usage_ind() on mgmt channel - first operation on newly instantiated driver instance

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 16 Network Driver Initialization Network Driver Instantiation (continued) MA begins child/parent bind sequence; issues UDI_CHANNEL_BOUND on child (ND) end of ND-Bus bind channel –may be in primary region, static or dynamic secondary region ND performs internal initialization, reads instance attributes, binds to parent with udi_bus_bind_req()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 17 Network Driver Initialization Network Driver Instantiation (continued) Parent (Bus Bridge) processes ND’s bind request, issues udi_bus_bind_ack() ND completes initialization, issues udi_channel_event_complete() for the parent bind operation to the MA Process repeated for ND (parent) and NSR (child) using NIM bind operations

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 18 Network Driver Initialization Network Driver Enumeration Attributes Network Driver Enumeration Attributes –if_num: port instance number (32bit unsigned) –if_media: media type (macro) –identifier: media type (string) –address_locator: port instance number (string) –physical_locator: interface MAC address (string)

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 19 Network Driver Initialization Network Interface Metalanguage Bind Operation MA creates NSR-ND initial bind channel (control channel) using Network Interface Metalanguage ctrl_ops role –Network Interface Metalanguage control channel is now established NSR issues ND udi_nd_bind_req() on NSR bind channel –ND propagates constraints (memory requirements for DMA, etc.) to NSR with udi_constraints_propagate()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 20 Network Driver Initialization Network Interface Metalanguage Bind Operation (cont) ND actions on udi_nd_bind_req() (cont) –ND spawns and anchors transmit channel, using transmit channel ops vector index –ND spawns and anchors receive channel, using receive channel ops vector index ND acks bind with udi_nsr_bind_ack()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 21 Network Driver Initialization Connectionless Network Bind Operation

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 22 Network Driver Initialization Connectionless Network Bind Operation (continued)

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 23 Network Driver Initialization Network Interface Metalanguage Unbind Operation Unbind used to detach channels and release resources established during Network Bind operation ND acks with udi_nsr_unbind_ack() ND closes control and both data channels with udi_channel_close()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 24 Network Driver Initialization Connectionless Network Unbind Operation

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 25 Network Driver Operations Network Interface Control Enable network interface link activity –udi_nd_enable_req() –udi_nsr_enable_ack() Disable network interface link activity –udi_nd_disable_req() - no ack Indicate link state change –udi_nsr_status_ind()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 26 Network Driver Operations Control and Status Operations Control Requests - udi_nd_ctrl_req() –UDI_NET_ADD_MULTI –UDI_NET_DEL_MULTI –UDI_NET_ALLMULTI_ON –UDI_NET_ALLMULTI_OFF –UDI_NET_GET_CURR_MAC –UDI_NET_SET_CURR_MAC – UDI_NET_GET_FACT_MAC

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 27 Network Driver Operations Control and Status Operations (continued) udi_nd_ctrl_req() (continued) –UDI_NET_PROMISC_ON –UDI_NET_PROMISC_OFF –UDI_NET_HW_RESET –UDI_NET_BAD_RXPKT Control Request ack - udi_nsr_ctrl_ack()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 28 Network Driver Operations Control and Status Operations (continued) Status Indications - udi_nsr_status_ind() –UDI_NET_LINK_UP –UDI_NET_LINK_DOWN –UDI_NET_LINK_RESET Statistics –udi_nd_info_req() –udi_nsr_info_ack() –udi_net_info_cb_t

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 29 Network Driver Operations Control and Status Operations (continued) Statistics (cont) - –interface_is_active –link_is_active –is_full_duplex –link_mbps –link_bps –tx_packets –rx_packets udi_net_info_cb_t –tx_errors –rx_errors –tx_discards –rx_discards –tx_underrun –rx_overrun –collisions

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 30 Network Driver Operations Control Operation (enable multicast address)

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 31 Network Driver Operations Data Transfer - Transmit ND owns transmit buffers/control blocks –udi_cb_alloc() ND loans transmit control blocks to NSR –udi_nsr_tx_rdy() NSR sends transmit packets to ND –udi_nd_tx_req() –udi_nd_exp_tx_req()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 32 Network Driver Operations Data Transfer - Receive NSR owns receive control blocks –udi_cb_alloc() NSR loans receive control blocks to ND –udi_nd_rx_rdy() ND sends receive packets to NSR –udi_nsr_rx_ind() –udi_nsr_exp_rx_ind()

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 33 Network Driver Operations Connectionless Data Transfer Operations

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 34 MDI/UDI Functional Comparison MDI Primitives MDI Primitives –MAC_BIND_REQ –MAC_OK_ACK –MAC_INFO_REQ –MAC_INFO_ACK –MAC_ERROR_ACK –MAC_HWFAIL_IND –MAC_HWSUSPEND_IND –MAC_HWRESUME_IND UDI Equivalent –udi_nd_bind_req() –udi_nd_bind_ack() –udi_nd_info_req() –udi_nsr_info_rsp() –udi_nsr_bind_res error –UDI_NET_HW_RESET –UDI_DMGMT_SUSPEND –UDI_DMGMT_RESUME

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 35 MDI/UDI Functional Comparison MDI Ioctls MDI Ioctls –MACIOC_SETALLMCA –MACIOC_DELALLMCA –MACIOC_SETMCA –MACIOC_DELMCA –MACIOC_GETADDR –MACIOC_GETRADDR –MACIOC_SETADDR –MACIOC_GETSTAT –MACIOC_PROMISC UDI Equivalent ctrl_ops –UDI_NET_ALLMULTI_ON –UDI_NET_ALLMULTI_OFF –UDI_NET_ADD_MULTI –UDI_NET_DEL_MULTI –UDI_NET_GET_CURR_MAC –UDI_NET_GET_FACT_MAC –UDI_NET_SET_CURR_MAC –udi_nd_info_req() –UDI_NET_PROMISC_ON/OFF

F13: UDI Network Drivers © 1999 SCO All Rights Reserved - Slide 36 MDI/UDI Functional Comparison MDI Ioctls (continued) MDI Ioctls with no UDI equivalent –MACIOC_SETSTAT –MACIOC_CLRSTAT

Questions? References