Solstice X.25 9.2 Developer's Guide

7.7 N_getVCstatus--Get Per-Virtual-Circuit Statistics


Note -

This ioctl has been superceded by the N_getVCstats ioctl. It is retained for backward compatibility with Solstice X.25 8.x. When writing new applications, use N_getVCstats.


This ioctl is used to retrieve per-virtual circuit state and statistics, for all virtual circuits currently active over all configured links.

Associated Structure

The vcstatusf structure takes this format:

struct vcstatusf {    
   struct vcinfo       vcs[MAX_VC_ENTS];  /* Data buffer      */
   int                 first_ent;         /* Where to start search */
   unsigned char       num_ent;           /* Number entries returned */
 };

The members of the vcstatusf structure are:

Table 7-15 vcstatusf fields

Member 

Description 

vcs

An array of vcinfo structures, each of which contains the state and statistics for an individual virtual circuit.

first_ent

Informs the X.25 multiplexor where to start or restart the table read. It should initially be set to 0, to indicate starting at the beginning of the table. On return, it will be set to point to the next entry to be retrieved.  

num_ent

Indicates the number of virtual circuit entries returned in the vcs member. It should be set to 0 before making the ioctl.

The contents of the vcinfo structure are:

struct vcinfo {
        struct xaddrf     rem_addr;     /* = called for outward calls */
        /* = caller for inward calls  */
        uint32_t     xu_ident;     /* link id                    */
        uint32_t     process_id;   /* effective user id          */
        unsigned short    lci;          /* Logical Channel Identifier */
        unsigned char     xstate;       /* VC state                   */
        unsigned char     xtag;         /* VC check record            */
        unsigned char     ampvc;        /* =1 if a PVC                */
        unsigned char     call_direction;
        /* in=0, out=1                */
        unsigned char     domain;       /* was in 8.0, not in R7. Put it back */
        int                perVC_stats[perVCmon_size];
}; 

The xstate member contains the state of the VC. Possible states and meanings are:

Table 7-16 xstate summary

Entry 

Description 

Idle

Record is not in use 

AskingNRS

CR is being validated by NRS 

P1

VC state is READY 

P2

VC in DTE CALL REQUEST 

P3

VC in DXE INCOMING CALL 

P5

VC in CALL COLLISION 

DataTransfer

VC in P4 (see xflags 

DXEbusy

VC in P4, DXE sent RNR 

D2

VC in DTE RESET REQUEST 

D2pending

Wanting buffer for RESET 

WtgRCU

Waiting U RSC to int.err. 

WtgRCN

Waiting X.25 RSC for user 

WtgRCNpending

Buffer reqd to enter state 

P4pending

Buffer reqd for X.25 RSC 

pRESUonly

Buffer for user rst only 

RESUonly

User only being reset 

pDTransfer

Buffer for RSC to user 

WRCUpending

Buffer reqd internal RST 

DXErpending

Buffer reqd RST indication 

DXEresetting

Waiting U RSC to X.25 RI 

P6

VC in DTE CLEAR REQUEST 

P6pending

Wanting buffer for CLEAR 

WUcpending

Buffer reqd DI no netconn 

WUNcpending

Buffer reqd internal DI 

DXEcpending

Buffer reqd CLR REQ->User 

DXEcfpending

Buffer reqd CLC to User 

The perVC_stats member contains statistics. Entries are statistics counts, as follows:

Table 7-17 perVC_stats summary

Entry 

Description 

cll_in_v

Calls received and indicated 

cll_out_v

Calls sent 

caa_in_v

Call established for outgoing 

caa_out_v

Call established for incoming 

dt_in_v

Data packets received 

dt_out_v

Data packets sent 

ed_in_v

Interrupts received

ed_out_v

Interrupts sent 

rnr_in_v

Receiver not ready received 

rnr_out_v

Receiver not ready sent 

rr_in_v

Receiver ready rvcd 

rr_out_v

Receiver ready sent 

rst_in_v

Resets received 

rst_out_v

Resets sent 

rsc_in_v

Restart confirms received 

rsc_out_v

Restart confirms sent 

clr_in_v

Clears received 

clr_out_v

Clears sent 

clc_in_v

Clear confirms received 

clc_out_v

Clear confirms sent