/* File : ShowStat.c Description : Show statistics for CCII PMC FDDI Driver. Copyright : CCII Systems 1995-1998 This file may only be copied, altered or distributed with the written permission of CCII Systems. Author : Alastair Knight Project : PMC FDDI Driver. Created : 1998-12-22 Updates : $Log: /archive/pvcs/endfddi/src/showStat.c.V $ * * Rev 1.3 19 Jun 2002 11:49:54 tornado * * * Rev 1.2 19 Jun 2002 11:18:18 tornado * Added prototype for ccfddiGetStats. * Pass the unit number to ccfddiShowStats. * pass this unit number to ccfddiGetStats * * Rev 1.1 19 Jun 2002 11:15:06 tornado * * * Rev 1.0 16 Feb 2000 14:07:38 pvcs * Checked in from initial workfile by PVCS Version Manager Project Assistant. * * Rev 1.0 15 Jun 1999 15:56:08 gideonk * Initial Revision * * Rev 1.0 22 Dec 1998 15:25:52 ark * Initial revision. */ #include #include #include "ccMib.h" extern void ccfddiGetStats( int , struct cc_fddi_mib_type *); /* Convert from Time value (SMT 6.4.5.7.1) to seconds */ double ccfddiTime2Sec (int time_in_80ns_units) { return ((double) time_in_80ns_units * 0.00000008); } /* Convert from TimerTwosComplement value (SMT 6.4.5.7.1) to seconds */ double ccfddiTimerTwosComp2Sec (int time_in_80ns_units) { return ((double) -time_in_80ns_units * 0.00000008); } /* Get the interface statistics from the kernel and show */ int ccfddiShowStats(int unit) { struct cc_fddi_mib_type FddiStat; if ((unit < 0) || (unit > 1)) { return -1; } ccfddiGetStats (unit, &FddiStat); printf("rx_packets: %10d\n",FddiStat.rx_packets); printf("tx_packets: %10d\n",FddiStat.tx_packets); printf("rx_errors: %10d\n",FddiStat.rx_errors); printf("tx_errors: %10d\n",FddiStat.tx_errors); printf("rx_dropped: %10d\n",FddiStat.rx_dropped); printf("tx_dropped: %10d\n",FddiStat.tx_dropped); printf("multicast: %10d\n",FddiStat.multicast); printf("tx_collision: %8d\n",FddiStat.transmit_collision); printf("\nSMT Parameters:\n"); printf("smt_station_id: %02x %02x %02x %02x %02x %02x %02x %02x\n", FddiStat.smt_station_id[0], FddiStat.smt_station_id[1], FddiStat.smt_station_id[2], FddiStat.smt_station_id[3], FddiStat.smt_station_id[4], FddiStat.smt_station_id[5], FddiStat.smt_station_id[6], FddiStat.smt_station_id[7]); printf("smt_op_version_id: %08x\n",FddiStat.smt_op_version_id); printf("smt_hi_version_id: %08x\n",FddiStat.smt_hi_version_id); printf("smt_lo_version_id: %08x\n",FddiStat.smt_lo_version_id); printf("smt_user_data[32]: %32s\n",FddiStat.smt_user_data); printf("smt_mib_version_id: %08x\n",FddiStat.smt_mib_version_id); printf("smt_mac_cts: %08x\n",FddiStat.smt_mac_cts); printf("smt_non_master_cts: %08x\n",FddiStat.smt_non_master_cts); printf("smt_master_cts: %08x\n",FddiStat.smt_master_cts); printf("smt_available_paths: %08x\n",FddiStat.smt_available_paths); printf("smt_config_capabilities: %08x\n",FddiStat.smt_config_capabilities); printf("smt_config_policy: %08x\n",FddiStat.smt_config_policy); printf("smt_connection_policy: %08x\n",FddiStat.smt_connection_policy); printf("smt_t_notify: %08x\n",FddiStat.smt_t_notify); printf("smt_stat_rpt_policy: %08x\n",FddiStat.smt_stat_rpt_policy); printf("smt_trace_max_expirat.: %08x (%f)\n",FddiStat.smt_trace_max_expiration, ccfddiTime2Sec (FddiStat.smt_trace_max_expiration)); printf("smt_bypass_present: %08x\n",FddiStat.smt_bypass_present); printf("smt_ecm_state: %08x\n",FddiStat.smt_ecm_state); printf("smt_cf_state: %08x\n",FddiStat.smt_cf_state); printf("smt_remote_disconnect_flag: %08x\n",FddiStat.smt_remote_disconnect_flag); printf("smt_station_status: %08x\n",FddiStat.smt_station_status); printf("smt_peer_wrap_flag: %08x\n",FddiStat.smt_peer_wrap_flag); printf("smt_time_stamp: %016lx\n",FddiStat.smt_time_stamp); printf("smt_transition_time_stamp: %016lx\n",FddiStat.smt_transition_time_stamp); printf("\nMAC Parameters:\n"); printf("mac_frame_status_functions: %08x\n",FddiStat.mac_frame_status_functions); printf("mac_t_max_capability: %08x (%f)\n",FddiStat.mac_t_max_capability, ccfddiTimerTwosComp2Sec (FddiStat.mac_t_max_capability)); printf("mac_tvx_capability: %08x (%f)\n",FddiStat.mac_tvx_capability, ccfddiTimerTwosComp2Sec (FddiStat.mac_tvx_capability)); printf("mac_available_paths: %08x\n",FddiStat.mac_available_paths); printf("mac_current_path: %08x\n",FddiStat.mac_current_path); printf("mac_upstream_nbr: %02x %02x %02x %02x %02x %02x\n", FddiStat.mac_upstream_nbr[0], FddiStat.mac_upstream_nbr[1], FddiStat.mac_upstream_nbr[2], FddiStat.mac_upstream_nbr[3], FddiStat.mac_upstream_nbr[4], FddiStat.mac_upstream_nbr[5]); printf("mac_downstream_nbr: %02x %02x %02x %02x %02x %02x\n", FddiStat.mac_downstream_nbr[0], FddiStat.mac_downstream_nbr[1], FddiStat.mac_downstream_nbr[2], FddiStat.mac_downstream_nbr[3], FddiStat.mac_downstream_nbr[4], FddiStat.mac_downstream_nbr[5]); printf("mac_old_upstream_nbr: %02x %02x %02x %02x %02x %02x\n", FddiStat.mac_old_upstream_nbr[0], FddiStat.mac_old_upstream_nbr[1], FddiStat.mac_old_upstream_nbr[2], FddiStat.mac_old_upstream_nbr[3], FddiStat.mac_old_upstream_nbr[4], FddiStat.mac_old_upstream_nbr[5]); printf("mac_old_downstream_nbr: %02x %02x %02x %02x %02x %02x\n", FddiStat.mac_old_downstream_nbr[0], FddiStat.mac_old_downstream_nbr[1], FddiStat.mac_old_downstream_nbr[2], FddiStat.mac_old_downstream_nbr[3], FddiStat.mac_old_downstream_nbr[4], FddiStat.mac_old_downstream_nbr[5]); printf("mac_dup_address_test: %08x\n",FddiStat.mac_dup_address_test); printf("mac_requested_paths: %08x\n",FddiStat.mac_requested_paths); printf("mac_downstream_port_type: %08x\n",FddiStat.mac_downstream_port_type); printf("mac_smt_address: %02x %02x %02x %02x %02x %02x\n", FddiStat.mac_smt_address[0], FddiStat.mac_smt_address[1], FddiStat.mac_smt_address[2], FddiStat.mac_smt_address[3], FddiStat.mac_smt_address[4], FddiStat.mac_smt_address[5]); printf("mac_t_req: %08x (%f)\n",FddiStat.mac_t_req, ccfddiTimerTwosComp2Sec (FddiStat.mac_t_req)); printf("mac_t_neg: %08x (%f)\n",FddiStat.mac_t_neg, ccfddiTimerTwosComp2Sec (FddiStat.mac_t_neg)); printf("mac_t_max: %08x (%f)\n",FddiStat.mac_t_max, ccfddiTimerTwosComp2Sec (FddiStat.mac_t_max)); printf("mac_tvx_value: %08x (%f)\n",FddiStat.mac_tvx_value, ccfddiTimerTwosComp2Sec (FddiStat.mac_tvx_value)); printf("mac_frame_cts: %08x\n",FddiStat.mac_frame_cts); printf("mac_copied_cts: %08x\n",FddiStat.mac_copied_cts); printf("mac_transmit_cts: %08x\n",FddiStat.mac_transmit_cts); printf("mac_error_cts: %08x\n",FddiStat.mac_error_cts); printf("mac_lost_cts: %08x\n",FddiStat.mac_lost_cts); printf("mac_frame_error_threshold: %08x\n",FddiStat.mac_frame_error_threshold); printf("mac_frame_error_ratio: %08x\n",FddiStat.mac_frame_error_ratio); printf("mac_rmt_state: %08x\n",FddiStat.mac_rmt_state); printf("mac_da_flag: %08x\n",FddiStat.mac_da_flag); printf("mac_una_da_flag: %08x\n",FddiStat.mac_una_da_flag); printf("mac_frame_error_flag: %08x\n",FddiStat.mac_frame_error_flag); printf("mac_ma_unitdata_available: %08x\n",FddiStat.mac_ma_unitdata_available); printf("mac_hardware_present: %08x\n",FddiStat.mac_hardware_present); printf("mac_ma_unitdata_enable: %08x\n",FddiStat.mac_ma_unitdata_enable); printf("\nPATH Parameters: PRIMARY\n"); printf("path_tvx_lower_bound: %08x (%f)\n",FddiStat.path_tvx_lower_bound, ccfddiTimerTwosComp2Sec (FddiStat.path_tvx_lower_bound)); printf("path_t_max_lower_bound: %08x (%f)\n",FddiStat.path_t_max_lower_bound, ccfddiTimerTwosComp2Sec (FddiStat.path_t_max_lower_bound)); printf("path_max_t_req: %08x (%f)\n",FddiStat.path_max_t_req, ccfddiTimerTwosComp2Sec (FddiStat.path_max_t_req)); printf("\nPORT Parameters: PORT 1 PORT 2\n"); printf("port_my_type[2]: %08x %08x\n", FddiStat.port_my_type[0], FddiStat.port_my_type[1]); printf("port_neighbor_type[2]: %08x %08x\n", FddiStat.port_neighbor_type[0], FddiStat.port_neighbor_type[1]); printf("port_connection_policies[2]: %08x %08x\n", FddiStat.port_connection_policies[0], FddiStat.port_connection_policies[1]); printf("port_mac_indicated[2]: %08x %08x\n", FddiStat.port_mac_indicated[0], FddiStat.port_mac_indicated[1]); printf("port_current_path[2]: %08x %08x\n", FddiStat.port_current_path[0], FddiStat.port_current_path[1]); printf("port_requested_paths[3*2]: %08x %08x\n", FddiStat.port_requested_paths[0], FddiStat.port_requested_paths[1]); printf(" %08x %08x\n", FddiStat.port_requested_paths[2], FddiStat.port_requested_paths[3]); printf(" %08x %08x\n", FddiStat.port_requested_paths[4], FddiStat.port_requested_paths[5]); printf("port_mac_placement[2]: %08x %08x\n", FddiStat.port_mac_placement[0], FddiStat.port_mac_placement[1]); printf("port_available_paths[2]: %08x %08x\n", FddiStat.port_available_paths[0], FddiStat.port_available_paths[1]); printf("port_pmd_class[2]: %08x %08x\n", FddiStat.port_pmd_class[0], FddiStat.port_pmd_class[1]); printf("port_connection_capabilities[2]: %08x %08x\n", FddiStat.port_connection_capabilities[0], FddiStat.port_connection_capabilities[1]); printf("port_bs_flag[2]: %08x %08x\n", FddiStat.port_bs_flag[0], FddiStat.port_bs_flag[1]); printf("port_lct_fail_cts[2]: %08x %08x\n", FddiStat.port_lct_fail_cts[0], FddiStat.port_lct_fail_cts[1]); printf("port_ler_estimate[2]: %08x %08x\n", FddiStat.port_ler_estimate[0], FddiStat.port_ler_estimate[1]); printf("port_lem_reject_cts[2]: %08x %08x\n", FddiStat.port_lem_reject_cts[0], FddiStat.port_lem_reject_cts[1]); printf("port_lem_cts[2]: %08x %08x\n", FddiStat.port_lem_cts[0], FddiStat.port_lem_cts[1]); printf("port_ler_cutoff[2]: %08x %08x\n", FddiStat.port_ler_cutoff[0], FddiStat.port_ler_cutoff[1]); printf("port_ler_alarm[2]: %08x %08x\n", FddiStat.port_ler_alarm[0], FddiStat.port_ler_alarm[1]); printf("port_connect_state[2]: %08x %08x\n", FddiStat.port_connect_state[0], FddiStat.port_connect_state[1]); printf("port_pcm_state[2]: %08x %08x\n", FddiStat.port_pcm_state[0], FddiStat.port_pcm_state[1]); printf("port_pc_withhold[2]: %08x %08x\n", FddiStat.port_pc_withhold[0], FddiStat.port_pc_withhold[1]); printf("port_ler_flag[2]: %08x %08x\n", FddiStat.port_ler_flag[0], FddiStat.port_ler_flag[1]); printf("port_hardware_present[2]: %08x %08x\n", FddiStat.port_hardware_present[0], FddiStat.port_hardware_present[1]); return(0); } /* ccfddiShowStats */