Statistics

  • GOAL files:

    • goal_stat.[h,c]

  • example:

    • …\goal\appl\00410_goal\eth_stats

GOAL provides the possibility to track statistics. Primarily this is used for Ethernet to propagate statistics and to analyse communication problems. GOAL provides the following typical Ethernet statistics for each port:

Table: provided Ethernet statistics by GOAL

GOAL number of Ethernet statistic

Description

ID

Number

Identifier

GOAL_ID_ETH

1

GOAL_ETH_STATS_TOTAL_DISC

number of total discarded frames

GOAL_ID_ETH

2

GOAL_ETH_STATS_TOTAL_BYTE_DISC

number of total discarded bytes

GOAL_ID_ETH

3

GOAL_ETH_STATS_TOTAL_FRAMES

number of total processed frames

GOAL_ID_ETH

4

GOAL_ETH_STATS_TOTAL_BYTE_FRAMES

number of total processed bytes

GOAL_ID_ETH

5

GOAL_ETH_STATS_ODISC

number of discarded outgoing frames

GOAL_ID_ETH

6

GOAL_ETH_STATS_IDISC_VLAN

number of discarded wrong or missing VLAN-IDs

GOAL_ID_ETH

7

GOAL_ETH_STATS_IDISC_UNTAGGED

number of discarded missing VLAN tags

GOAL_ID_ETH

8

GOAL_ETH_STATS_IDISC_BLOCK

number of discarded due to blocking mode

GOAL_ID_ETH

9

GOAL_ETH_STATS_LEARN_CNT

number of learned MAC addresses

GOAL_ID_ETH

10

GOAL_ETH_STATS_AFRAMES_RECEIVED_OK

number of received valid frames including pause

GOAL_ID_ETH

11

GOAL_ETH_STATS_AFRAMES_CRC_ERRORS

number of received frames with CRC errors

GOAL_ID_ETH

12

GOAL_ETH_STATS_AALIGNMENT_ERRORS

number of received frames with alignment errors

GOAL_ID_ETH

13

GOAL_ETH_STATS_AOCTETS_TRANSM_OK

number of transmitted valid octets

GOAL_ID_ETH

14

GOAL_ETH_STATS_ATX_PAUSE_CTRL_FRAMES

number of received valid octets

GOAL_ID_ETH

15

GOAL_ETH_STATS_ATX_PAUSE_CTRL_FRAMES

number of transmitted pause frames

GOAL_ID_ETH

16

GOAL_ETH_STATS_ARX_PAUSE_CTRL_FRAMES

number of received pause frames

GOAL_ID_ETH

17

GOAL_ETH_STATS_IFIN_ERRORS

number of received errors

GOAL_ID_ETH

18

GOAL_ETH_STATS_IFOUT_ERRORS

number of transmit errors

GOAL_ID_ETH

19

GOAL_ETH_STATS_IFIN_UCAST_PKTS

number of received unicast frames

GOAL_ID_ETH

20

GOAL_ETH_STATS_IFIN_MCAST_PKTS

number of received multicast frames

GOAL_ID_ETH

21

GOAL_ETH_STATS_IFIN_BCAST_PKTS

number of received broadcast frames

GOAL_ID_ETH

22

GOAL_ETH_STATS_IFOUT_DISC

number of discarded transmitted frames

GOAL_ID_ETH

23

GOAL_ETH_STATS_IFOUT_UCASR_PKTS

number of transmitted unicast frames

GOAL_ID_ETH

24

GOAL_ETH_STATS_IFOUT_MCAST_PKTS

number of transmitted multicast frames

GOAL_ID_ETH

25

GOAL_ETH_STATS_IFOUT_BCAST_PKTS

number of transmitted broadcast frames

GOAL_ID_ETH

26

GOAL_ETH_STATS_ETHERSTATS_OCTETS

number of all bytes (good and bad)

GOAL_ID_ETH

27

GOAL_ETH_STATS_ETHERSTATS_PKTS

number of all frames (good and bad)

GOAL_ID_ETH

28

GOAL_ETH_STATS_ETHERSTATS_UNDERSIZE

number of frames too short

GOAL_ID_ETH

29

GOAL_ETH_STATS_ETHERSTATS_OVERSIZE

number of frame too long

GOAL_ID_ETH

30

GOAL_ETH_STATS_ETHERSTATS_PKTS64

number of frames with size of 64 bytes

GOAL_ID_ETH

3

GOAL_ETH_STATS_ETHERSTATS_PKTS65TO127

number of frames with size of 65-127 bytes

GOAL_ID_ETH

32

GOAL_ETH_STATS_ETHERSTATS_PKTS128TO255

number of frames with size of 128-255 bytes

GOAL_ID_ETH

33

GOAL_ETH_STATS_ETHERSTATS_PKTS256TO511

number of frames with size of 256-511 bytes

GOAL_ID_ETH

34

GOAL_ETH_STATS_ETHERSTATS_PKTS512TO1023

number of frames with size of 512-1023 bytes

GOAL_ID_ETH

35

GOAL_ETH_STATS_ETHERSTATS_PKT1024TO1518

number of frames with size of 1024-1518 bytes

GOAL_ID_ETH

36

GOAL_ETH_STATS_ETHERSTATS_PKTS1519TOX

number of frames with size >= 1519 bytes

GOAL_ID_ETH

37

GOAL_ETH_STATS_ETHERSTATS_JABBERS

number of jabbers

GOAL_ID_ETH

38

GOAL_ETH_STATS_ETHERSTATS_FRAGS

number of fragments

GOAL_ID_ETH

39

GOAL_ETH_STATS_VLAN_RECV_OK

number of received valid VLANs

GOAL_ID_ETH

40

GOAL_ETH_STATS_VLAN_TRANS_OK

number of transmitted valid VLANs

GOAL_ID_ETH

41

GOAL_ETH_STATS_FRAMES_RETRANS

number of retransmitted collision frames

GOAL_ID_ETH

42

GOAL_ETH_STATS_ADEFERRED

number of deferred at begin

GOAL_ID_ETH

43

GOAL_ETH_STATS_AMULTIPLE_COLL

number of frames transmitted after multiple collisions

GOAL_ID_ETH

44

GOAL_ETH_STATS_ASINGLE_COLL

number of frames transmitted after single collisions

GOAL_ID_ETH

45

GOAL_ETH_STATS_ALATE_COLL

number of too late collisions

GOAL_ID_ETH

46

GOAL_ETH_STATS_AEXCESS_COLL

number of frames discarded due to 16 consecutive collisions

GOAL_ID_ETH

47

GOAL_ETH_STATS_ACARR_SENSE_ERR

number of PHY carrier sense errors

GOAL_ID_ETH

48

GOAL_ETH_STATS_IFIN_DISC

number of discarded received frames

GOAL_ID_ETH

49

GOAL_ETH_STATS_IFIN_UNKNOWN_PROTO

number of received unknown protocols

GOAL_ID_ETH

50

GOAL_ETH_STATS_SQE_ERR

number of SQE test errors

GOAL_ID_ETH

51

GOAL_ETH_STATS_MAC_TX_ERR

number of internal MAC Tx errors

GOAL_ID_ETH

52

GOAL_ETH_STATS_MAC_RX_ERR

number of internal MAC Rx errors

GOAL_ID_ETH

53

GOAL_ETH_STATS_SYMBOL_ERR

number of symbol errors

Access


Code: Read a statistics value

/* get received octets from port 0 */ res = goal_statValGetById(&val, GOAL_ID_ETH, GOAL_STAT_ID_ETH_IFOUTOCTETS, 0); if (GOAL_RES_ERR(res)) { goal_logErr("failed to retrieve statistics counter"); return; }


Code: Reset a statistics value

res = goal_statResetById(GOAL_ID_ETH, GOAL_STAT_ID_ETH_IFOUTOCTETS, 0); if (GOAL_RES_ERR(res)) { goal_logErr("failed to reset statistics counter"); return; }

Ethernet statistics


Each platform manages the support of the Ethernet statistics listed in Table 4 for the ID GOAL_ID_ETH by a bit-coded mask of the GOAL data type uint64_t. Bit 0 of the mask represents the Ethernet statistic with the GOAL number 0.
The access to the statistic values are realized about the Ethernet commands:

  • GOAL_ETH_CMD_STATS_MASK_GET: read the supported Ethernet statistics from the platform as bit-coded mask for all Ethernet port

  • GOAL_ETH_CMD_STATS_GET: read the values of all supported Ethernet statistics for one Ethernet port

  • GOAL_ETH_CMD_STATS_RST: reset Ethernet statistics for Ethernet ports; it is platform-specific which statistics of one or all Ethernet ports are reset

The Ethernet commands are executed by function goal_miEthCmd().
If the compiler-define GOAL_CONFIG_ETH_STATS_NAMES is set to 1, a short description for each Ethernet statistic is available in code by function goal_miEthStatsNameGet().

  • example:

    • …\goal\appl\00410_goal\eth_stats