UDI NIC Test Specification

Similar documents
RFC: connectionless Data Link Metalanguage Burkhard Daniel

RFC: connectionless Data Link Metalanguage (cldl) cldl Metalanguage Model. RFC for a connectionless Data Link Metalanguage

Data Submitted Voice: Fax: SungCheol Chang Chulsik Yoon,

n Describe sniffing concepts, including active and passive sniffing n Describe sniffing countermeasures n Describe signature analysis within Snort

APPLICATION NOTE. Date Issued: 12/11/03. Subject: Basic Connection to an H2-WPLC with Think & Do Live. Revision: Original

Memory Management. Dr. Yingwu Zhu

Dataflow Editor User Guide

IEEE P1722 AVBTP. Version 0.01, Alan K. Bartky Bartky Networks Send comments to

Housekeeping. Fall /5 CptS/EE 555 1

Phone NTP Reference Configuration

Netchannel 2: Optimizing Network Performance

Configure the Protocol Family on page 40. Configure the Interface Address on page 40

Configuring VM-FEX. Information About VM-FEX. VM-FEX Overview. VM-FEX Components. This chapter contains the following sections:

History Page. Barracuda NextGen Firewall F

Portable 2-Port Gigabit Wirespeed Streams Generator & Network TAP

Data Link Layer. Our goals: understand principles behind data link layer services: instantiation and implementation of various link layer technologies

Command Manual Network Protocol. Table of Contents

Connecting to the Network

POINT I/O and ArmorPOINT I/O Dual Port EtherNet/IP Adapters

Legal Notice. Page 2. Copyright MMB Research Inc. 2014

Lecture 7: Ethernet Hardware Addressing and Frame Format. Dr. Mohammed Hawa. Electrical Engineering Department, University of Jordan.

Nokia Fax:

The MAC Address Format

Outline. Routing. Introduction to Wide Area Routing. Classification of Routing Algorithms. Introduction. Broadcasting and Multicasting

InfiniBand * Access Layer Programming Interface

IEEE C802.16i-06/014r3

IP/MAC Address Translation

ARP attack protection commands

Internet Protocol, Version 6

GFP Considerations for RPR

Operation Manual IPv4 Routing H3C S3610&S5510 Series Ethernet Switches. Table of Contents

MAC Address Configuration Commands

Using the VQE-S Application Monitoring Tool

WIRELESS REMOTE MONITOR KIT

Configure Ethernet Physical Interface Properties on page 82. Configure 802.1Q VLANs on page 83. Configure the Management Ethernet Interface on page 84

IPv6 is Internet protocol version 6. Following are its distinctive features as compared to IPv4. Header format simplification Expanded routing and

SMDS Commands. SMDS Commands 10-1

Using the VQE-S Application Monitoring Tool

Phone NTP Reference Configuration

Networking for Data Acquisition Systems. Fabrice Le Goff - 14/02/ ISOTDAQ

Latest Developments with NVMe/TCP Sagi Grimberg Lightbits Labs

Remote Monitoring. Remote Monitoring Overview

IEEE C802.16e-04/201. Project. IEEE Broadband Wireless Access Working Group <

EtherNet/IP - ODVA Conformance Test Results

H3C EPON. OLT Command Manual. Hangzhou H3C Technologies Co., Ltd. Manual Version: T M C-1.02

MODULE: NETWORKS MODULE CODE: CAN1102C. Duration: 2 Hours 15 Mins. Instructions to Candidates:

ET4254 Communications and Networking 1

IPv6 Stack. 6LoWPAN makes this possible. IPv6 over Low-Power wireless Area Networks (IEEE )

SNMP Agent Plug-In PTC Inc. All Rights Reserved.

Network Protocol Configuration Commands

MPLS Forwarding Commands on Cisco IOS XR Software

White Paper: Control Plane Implementation on Coordinated Shared Networks (CSN)

PART X. Internetworking Part 1. (Concept, IP Addressing, IP Routing, IP Datagrams, Address Resolution)

Internet Protocol (IP)

MAX-860 Report FAIL. Job Information. Equicom Méréstechnikai Kft. Report Title: Circuit ID: Contractor Name: Customer Name: Operator Name: Comment:

Port Status and Basic Configuration

SCP Embraer Supplier Guide

FOREWORD. In addition, changes to BTL Specified Tests might also contain a yellow highlight to indicate the changes made by this addendum.

G3 PHYSICAL LAYER API SPECIFICATION

QUIZ: Longest Matching Prefix

Mike Shorthose, Nikos Fistas Eurocontrol

Internet Protocols (chapter 18)

libnetfilter_log Reference Manual

Configuring MPLS L2VPN

Networking Fundamentals Tom Brett

MAX-860 Report PASS. Job Information. Equicom Méréstechnikai Kft. Report Title: EtherSAM (Y.1564)

TS Manipulator Requirement Specifications & High Level Design Document. George Mason University

Uniform Driver Interface UDI PCI Bus Binding Specification Version 1.0

System Design Guide for Slave

Lab Viewing Network Device MAC Addresses

Table of Contents Chapter 1 MSTP Configuration

Intended status: Standards Track. Cisco Systems October 22, 2018

Draft AVBTP over IEEE 802.3

HP 5800 & 5820X Switch Series Troubleshooting Guide

Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification

REPLACING A PEERLINK NETWORK WITH 2572-A / 2572-B ETHERNET

The Addressing of Data Link Layer

For complete syntax and usage information for the commands used in this chapter, see the Cisco IOS Configuration Fundamentals Command Reference

The trace is here:

IP Multicast Addressing

Chapter 6. The Transport Layer. The Transport Service. Services Provided to the Upper Layers. Transport Service Primitives (3) 10/7/2010

Lab Using Wireshark to Examine Ethernet Frames

Uniform Driver Interface UDI SCSI Driver Specification Version 1.0

Internetworking - We are heterogeneity to our network (variable network technologies, bandwidth, MTU, latency, etc. etc.)

RIP Configuration. RIP Overview. Operation of RIP. Introduction. RIP routing table. RIP timers

IEEE 1588 Hardware Assist

Configuring ARP attack protection 1

Network System Security

Media Access Control (MAC) Sub-layer and Ethernet

FRS IPO CONFIGURATIONS

Last time. Network layer. Introduction. Virtual circuit vs. datagram details. IP: the Internet Protocol. forwarding vs. routing

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Auxiliary Protocols

Mobile IP and its trends for changing from IPv4 to IPv6

Overriding the Default DHCP Relay Configuration Settings

DHCP Server RADIUS Proxy

County of Sonoma Web Accessibility Questionnaire

IP Router Command Reference

Bridging. Robert Castellano David James Bob Sultan Spencer Dawkins. 1/22/2002 rc_brdg_02.pdf

VLAN and bridges. Transparent Bridging (TB) Transparent Bridging (TB) LB: Learning Bridge. Several Learning Bridges. Loops. Loop-Free topology

Annex B UMT Peer Discovery and Tunnel Auto-Configuration

Transcription:

UDI NIC Test Specification by Gian-Carlo Bava (SCO) Barry Feild (SCO) Change History Revision Date Description 0.6 11/05/99 DRAFT version for review Approvers: TBD

1 Introduction This document describes the UDI Network Interface Controller (NIC) driver tests. UDI NIC driver tests verify UDI network driver channel operations, parameters, and sequences. Both send and receive are tested, as well as multiple NICs and stress. This document defines test purposes for the UDI NIC driver test suite. Test purposes specify an operation for the driver to perform and an expected result for the operation. It also defines test cases which are a series of functional tests comprised of one or more test purposes. 1.1 References This document references and depends upon the following documents UDI NIC Driver Specification, Revision 1.0 2 Network Driver Test Purpose Definitions Test purposes are the smallest addressable component used by a test case. Each test purpose specifies an operation for the driver to perform and an expected result for the operation. The test purpose generates a PASS or FAIL result based on the comparison of the actual result of the operation with the expected result. The test specification defines the operations for the driver to perform and the expected results of those operations. It does not describe how to implement the test operations. Network drivers must implement all of the channel operations defined in the UDI NIC Driver Specification. The table below defines the NIC driver test purposes. Most values in the Input Parameters/Notes column define parameters passed to the test purpose. These modify the test purpose behavior. Notes are in Italics and values that are variable are enclosed in <>. Values in the Expected Results column are parameters passed by the operation, or members in a control block passed by the operation. Refer to the UDI NIC Driver Specification to differentiate parameters from structure members. Purpose Chan Orig Operation Input Parameters/Notes Expected Results bind ctrl NSR udi_nd_bind_req ctrl ND udi_nsr_bind_ack /invalid_state unbind ctrl NSR udi_nd_unbind_req ctrl ND udi_nsr_unbind_ack /invalid_state enable ctrl NSR udi_nd_enable_req ctrl ND udi_nd_enable_ack /hw_problem disable ctrl NSR udi_nd_disable_req addmulti indicator=<add_num > command = 1 data=<mac_addresses> delmulti indicator=<del_num> command = 2 data=<mac_addresses> allmultion command = 3 UDI Test Specification DRAFT 0.6 1

allmultioff getcurrmac setcurrmac getfactmac promiscon promiscoff hwreset badpkt status info tx tx-exp command = 4 indicator=<add_num> data=<mac_addresses> command = 5 indicator=<addr_size> command = 6 data=<mac_address> command = 7 indicator=<addr_size> data=<mac_address> command = 8 command = 9 command = 10 indicator=<frame_size> command = 11 ctrl ND udi_nsr_status_ind manually [un]plug NIC event=down/up/reset link state initiates ind ctrl NSR udi_nd_info_req reset_stats=true/false timeout=<seconds> -1 for no timeout ctrl ND udi_nsr_info_ack interface_is_active=true/f alse OR tx ND udi_nsr_tx_rdy tx_buf must be NULL tx NSR udi_nd_tx_req chain=<num_frames> data=<packet_headers> size=<frame_size> urgent=true/false tx ND udi_nsr_tx_rdy tx NSR udi_nd_exp_tx_req chain=<num_frames> data=<packet_headers> size=<frame_size> urgent=true/false NSR udi_nd rdy chain=<num_frames> data=<packet_headers> size=<frame_size> timeout=<seconds> -1 for no timeout UDI Test Specification DRAFT 0.6 2

-exp ND udi_nd ind OR NSR udi_nd rdy chain=<num_frames> data=<packet_headers> size=<expected_size> timeout=<seconds> -1 for no timeout ND udi_nsr_exp ind TBD can we test this? OR 3 NIC Driver Test Case Definitions Test cases are a series of functional tests. Functional tests are formed by combining one or more test purposes to test specific functionality. Each functional test generates a PASS or FAIL result. If one or more of the test purposes returns a FAIL result, the functional test returns a FAIL result. If one or more functional tests within a test case returns a FAIL result, the test case returns a FAIL result. NOTE: Some of the functional tests require at least two machines to interact. These functional tests require the machines to use some type of synchronization and message exchange protocol. Such a protocol is not defined in this document. Driver configuration, initialization, and synchronization need to be described in the UDI NIC Test Case Design document. 3.1 NIC Driver Unit Test Case The NIC driver unit test case performs functional testing of all channel operations defined in the UDI NIC Driver Specification. This test case verifies basic functionality of the driver under test. This test case also exercises all of the valid state transitions defined in the UDI NIC Driver Specification to verify driver compliance. This test does not verify driver behavior under heavy load or stress, nor does it attempt to verify driver behavior when presented with invalid state transitions. This test case does not attempt operations with invalid parameters. In the Functional Test column, state transitions are delineated with arrows (->) between two states. Operations attempted in a given state are marked <state>, <operation>. Expected results refer to the final test purpose result in the Expected Results column. NOTE: Two state transitions (enabled->active and active->enabled) occur when the driver detects link activation or loss, respectively. It may be desirable to break this test case into two separate test cases, one that is run with the adapter plugged into the media and another that is run with the adapter unplugged. This would reduce the need for manual intervention, making the test suite as a whole more automated. Functional Test Test Purpose Sequence Input Parameters/Notes Expected Results unbound->bound bind bound->unbound bind, unbind bound->enabled bind, enable adapter unplugged UDI Test Specification DRAFT 0.6 3

enabled->bound bind, enable, disable adapter unplugged enabled- bind, enable, unbind adapter unplugged >unbound enabled->active bind, enable, *plugin requires manual intervention event=up NIC*, status active->enabled bind, enable, *unplug requires manual intervention event=down NIC*, status active->unbound bind, enable, unbind active, transmit bind, enable, tx receiver verifies frame header matches expected header (data) and frame active, tx-cb_ret bind, enable, tx urgent=true NSR verifies tx cbs returned active, tx-chain bind, enable, tx chain=<num_tx_cbs> size=<min to max pdu active, tx-exp bind, enable, tx-exp active, bind, enable, data=<both unicast and broadcast MAC addr hdr> active, addmulti active, delmulti bind, enable, addmulti, ( to verify receive on each valid multicast addresses) bind, enable, addmulti, delmulti, indicator=1, 16, 1024 data=<test multicast addrs> timeout=100 size=<min pdu> data=<test multicast headers> indicator=1, 16, 1024 data=<test multicast addrs> and generates pass/fail receiver verifies frame header matches expected header (data) and frame and generates pass/fail receiver verifies frame header matches expected header (data) and frame and generates pass/fail receiver verifies frame header matches expected header (data) and frame and generates pass/fail <indicator> frames: verify frame headers match expected headers (data) and frame contents are test pattern active, allmultion ( to verify receive timeout on invalid multicast addrs) bind, enable, allmultion, ( to verify receive on multiple multicast addresses) timeout=5 size=<min pdu> data=<test multicast headers> timeout=5 size=<min pdu> data=<test multicast headers> verify actual frame headers match expected headers (data) and frame UDI Test Specification DRAFT 0.6 4

active, allmultioff bind, enable, allmultion, allmultioff, indicator=0 active, getcurrmac active, setcurrmac ( to verify receive timeout on invalid multicast addrs) bind, enable, getcurrmac bind, enable, setcurrmac, ( to verify receive on current unicast address) timeout=5 size=<min pdu> data=<test multicast headers> data=<test_unimac_addr> verify receive on test_unimac_addr active, getfactmac active, promiscon active, promiscoff (getcurrmac verify addr) bind, enable, getfactmac bind, enable, promiscon, ( to verify receive on test unicast address) bind, enable, promiscon, promiscoff, data=<test_mac_addr> data=<valid_mac_addr> verify receive on test unicast mac address ( to verify no receive on test unicast address) verify receive timeout triggered active, hwreset bind, enable, hwreset active, badpkt bind, enable, badpkt indicator=0, repeat: indicator=<max_pdu> bound, info bind, info reset_statistics=false interface_is_active=true repeat, reset_statistics=true enabled, info bind, enable, info reset_statistics=false adapter unplugged active, info bind, enable, info reset_statistics=false unbound, info info, bind reset_statistics=false timeout=<tbd_long_time> enabled, status bind, enable *unplug NIC*, status *plugin NIC*, status verify info returns zero d stats interface_is_active=true interface_is_active=true interface_is_active=true verify info_ack returned after bind_ack event=down event=up 3.2 NIC Driver Invalid Operations Test Case The NIC driver invalid operations test case verifies driver behavior when presented with state transitions that are not valid according to the UDI NIC Driver Specification. This test case also verifies driver behavior when operations with invalid parameters are attempted. In the Functional Test column, state transitions are delineated with arrows (->) between two states. Operations attempted in a given state are marked <state>, <operation>. UDI Test Specification DRAFT 0.6 5

The Test Purpose Sequences assume the driver has been initialized by the Management Agent and received a udi_channel_event_ind(udi_channel_bound) on the NSR s parent channel. Functional Test Test Purpose Input Parameters/Notes Expected Results Sequence unbound->transmit tx machine verifies no unbound->receive tx machine sends frames to broadcast address bound->transmit bind, tx machine verifies no bound->receive bind, tx machine sends frames to broadcast address enabled->transmit->bound bind, enable, tx, disable adapter unplugged machine verifies no bound, bind bind, bind status=invalid_state enabled, bind bind, enable, bind adapter unplugged status=invalid_state active, bind bind, enable, bind status=invalid_state status=invalid_state unbound, unbind unbind status=invalid_state unbound, enable enable status=hardware_problem enabled, enable bind, enable, enable adapter unplugged status=hardware_problem active, enable bind, enable, enable status=hardware_problem active, tx bind, enable, tx size=<max pdu + 1> active, tx bind, enable, tx size=<min pdu - 1> data=<invalid_header> machine verifies no machine verifies no unbound, disable disable bound, disable bind, disable bound, ctrl bind, getfactmac status=not_understood unbound, info info reset_stats=false active->unbound, info bind, enable, unbind, info reset_stats=false 3.3 NIC Driver Stress Test Case The NIC driver stress test case verifies driver behavior under heavy load. This test case measures and reports %media saturation and %cpu utilization. Operation Test Purpose Sequence Input Parameters Expected Result UDI Test Specification DRAFT 0.6 6

transmit bind, enable, tx (loop) chain=<all_tx_cbs> receive bind, enable, (loop) receiver verifies frame headers matchs expected headers (data) and frame and generates pass/fail (for all frames) 3.4 NIC Driver Multiple Adapter Test Case The NIC driver multiple adapter test case verifies the driver is able to utilize more than one adapter for both send and receive. Unlike the stress test case, this test case does not attempt to put the driver under extreme load. Test Test Purpose Sequence Input Parameters/Notes Expected Results transmit bind, enable, tx (on all supported adatpers) receive bind, enable, (on all supported adapters) chain=<1> TBD - timed test? TBD - timed test? receiver verifies frame header matches expected header (data) and frame and generates pass/fail UDI Test Specification DRAFT 0.6 7