Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vdstats(2) — AOS 4.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

vdstats(8)

VDSTATS(2)  —  

NAME

vdstats − acquire client Remote Virtual Disk (RVD) statistics

SYNOPSIS

#include <netinet/in.h>
#include <machineio/vdreg.h>

vdstats(stats, drives)
struct vd_stat ∗stats;
struct vd_device drives[];

DESCRIPTION

Vdstats will acquire statistics about current virtual disk connections of this client.  These statistics can be printed by using the vdstats utility (see vdstats(8)).  Vdstats works by copying the global kernel variables “vdstat” and “vddinfo” into stats and drives, respectively.  Stats is a pointer to a structure with fields for RVD network activity statistics, defined in <machineio/vdreg.h>:

struct vd_stat {
    u_long bad_blk; /∗ Number of bad block numbers received -
               i.e. responses from server that had no
               waiting block or drive on our side ∗/
    u_long bad_cksum;/∗ Number of packets with bad checksum ∗/
    u_long bad_type;    /∗ Not a packet type that we deal with ∗/
    u_long timeout; /∗ Number of requests that timed out ∗/
    u_long bad_nonce;   /∗ Nonce did not agree ∗/
    u_long bad_state;   /∗ Packet arrived; state was inappropriate ∗/
    u_long bad_data;    /∗ Data was invalid ∗/
    u_long pkts_sent;   /∗ Number of packets sent ∗/
    u_long blk_rqs;     /∗ Number of blocks requested ∗/
    u_long rxmts;   /∗ Number of retransmits ∗/
    u_long pkts_rcvd;   /∗ Number of RVD packets received ∗/
    u_long blk_wrt; /∗ Number of blocks written ∗/
    u_long q_size[STQLEN];
    u_long err_rcv;     /∗ # error pkts rcvd from server ∗/
    u_long bad_vers;    /∗ # pkts with bad version ∗/
    u_long bad_frmt;    /∗ # pkts that were badly formed ∗/
    u_long pkt_rej;     /∗ # pkts that local host wouldn’t send ∗/
    u_long pushes;  /∗ Number of requests (bufs) delayed
               because of flow control ∗/
    };

Drives is an array of vd_device structures, as defined in <machineio/vdreg.h>:

struct vd_device {
    long drive;   /∗ Drive number ∗/
    u_char status;  /∗ Status of drive ∗/
    u_char bfactor;     /∗ Blocking factor for writes ∗/
    u_short state;
    u_long nblocks; /∗ Size of disk in blocks ∗/
    u_long index;   /∗ Server specified index ∗/
    u_long nonce;   /∗ Current UID for packets from this drive ∗/
    struct in_addr server;/∗ Address of server where this
                          disk actually resides ∗/
    u_short mode;   /∗ Mode spunup in ∗/
    u_short q_len;  /∗ Current length of queued requests ∗/
    u_short burst;  /∗ Maximum burst size to server ∗/
    u_short maxqlen;    /∗ Maximum number of outstanding requests
               on this drive ∗/
    u_short reqs_out;   /∗ Current number of outstanding requests ∗/
    char capability[VDMAXCAPABILITY]; /∗ Capability for spindown ∗/
    char name[VDMAXNAME]; /∗ Name for vdstats ∗/
    };

SEE ALSO

vdstats(8)
“The Remote Virtual Disk System” in Volume II, Supplementary Documents

BUGS

The meaning of the “status” field in structure vd_device is lost. 

State gives the status of the server when last accessed by the client; if there has been no activity with the server, this may become outdated. 

There is no way for the user program to know how big the drives array should be.  Since the maximum number of virtual disks is 10, the user should allocate 10 entries and zero them. 

PRPQs 5799-WZQ/5799-PFF: IBM/4.3  —  15 Dec 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026