#ifndef _MAC_STAT_H
#define _MAC_STAT_H
#include <sys/mac_flow_impl.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
struct mac_soft_ring_set_s;
struct mac_soft_ring_s;
typedef struct mac_rx_stats_s {
uint64_t mrs_lclbytes;
uint64_t mrs_lclcnt;
uint64_t mrs_pollcnt;
uint64_t mrs_pollbytes;
uint64_t mrs_intrcnt;
uint64_t mrs_intrbytes;
uint64_t mrs_sdrops;
uint64_t mrs_chaincntundr10;
uint64_t mrs_chaincnt10to50;
uint64_t mrs_chaincntover50;
uint64_t mrs_ierrors;
} mac_rx_stats_t;
typedef struct mac_tx_stats_s {
uint64_t mts_obytes;
uint64_t mts_opackets;
uint64_t mts_oerrors;
uint64_t mts_blockcnt;
uint64_t mts_unblockcnt;
uint64_t mts_sdrops;
} mac_tx_stats_t;
typedef struct mac_misc_stats_s {
uint64_t mms_multircv;
uint64_t mms_brdcstrcv;
uint64_t mms_multixmt;
uint64_t mms_brdcstxmt;
uint64_t mms_multircvbytes;
uint64_t mms_brdcstrcvbytes;
uint64_t mms_multixmtbytes;
uint64_t mms_brdcstxmtbytes;
uint64_t mms_txerrors;
mac_rx_stats_t mms_defunctrxlanestats;
mac_tx_stats_t mms_defuncttxlanestats;
uint64_t mms_macspoofed;
uint64_t mms_ipspoofed;
uint64_t mms_dhcpspoofed;
uint64_t mms_restricted;
uint64_t mms_dhcpdropped;
} mac_misc_stats_t;
extern void mac_misc_stat_create(flow_entry_t *);
extern void mac_misc_stat_delete(flow_entry_t *);
extern void mac_ring_stat_create(mac_ring_t *);
extern void mac_ring_stat_delete(mac_ring_t *);
extern void mac_srs_stat_create(struct mac_soft_ring_set_s *);
extern void mac_srs_stat_delete(struct mac_soft_ring_set_s *);
extern void mac_tx_srs_stat_recreate(struct mac_soft_ring_set_s *,
boolean_t);
extern void mac_soft_ring_stat_create(struct mac_soft_ring_s *);
extern void mac_soft_ring_stat_delete(struct mac_soft_ring_s *);
extern void mac_stat_rename(mac_client_impl_t *);
extern void mac_pseudo_ring_stat_rename(mac_impl_t *);
extern void mac_driver_stat_create(mac_impl_t *);
extern void mac_driver_stat_delete(mac_impl_t *);
extern uint64_t mac_driver_stat_default(mac_impl_t *, uint_t);
extern uint64_t mac_rx_ring_stat_get(void *, uint_t);
extern uint64_t mac_tx_ring_stat_get(void *, uint_t);
#endif