Print this page
3516 Leftover multidata transmit kernel statistics in ipv6
Reviewed by: Sebastien Roy <seb@delphix.com>


  96 #define IP6_STAT_UPDATE(ipst, x, n)     \
  97         ((ipst)->ips_ip6_statistics.x.value.ui64 += (n))
  98 
  99 typedef struct ip6_stat {
 100         kstat_named_t   ip6_udp_fannorm;
 101         kstat_named_t   ip6_udp_fanmb;
 102         kstat_named_t   ip6_recv_pullup;
 103         kstat_named_t   ip6_db_ref;
 104         kstat_named_t   ip6_notaligned;
 105         kstat_named_t   ip6_multimblk;
 106         kstat_named_t   ipsec_proto_ahesp;
 107         kstat_named_t   ip6_out_sw_cksum;
 108         kstat_named_t   ip6_out_sw_cksum_bytes;
 109         kstat_named_t   ip6_in_sw_cksum;
 110         kstat_named_t   ip6_tcp_in_full_hw_cksum_err;
 111         kstat_named_t   ip6_tcp_in_part_hw_cksum_err;
 112         kstat_named_t   ip6_tcp_in_sw_cksum_err;
 113         kstat_named_t   ip6_udp_in_full_hw_cksum_err;
 114         kstat_named_t   ip6_udp_in_part_hw_cksum_err;
 115         kstat_named_t   ip6_udp_in_sw_cksum_err;
 116         kstat_named_t   ip6_frag_mdt_pkt_out;
 117         kstat_named_t   ip6_frag_mdt_discarded;
 118         kstat_named_t   ip6_frag_mdt_allocfail;
 119         kstat_named_t   ip6_frag_mdt_addpdescfail;
 120         kstat_named_t   ip6_frag_mdt_allocd;
 121 } ip6_stat_t;
 122 
 123 typedef struct ire_stats {
 124         uint64_t ire_stats_alloced;     /* # of ires alloced */
 125         uint64_t ire_stats_freed;       /* # of ires freed */
 126         uint64_t ire_stats_inserted;    /* # of ires inserted in the bucket */
 127         uint64_t ire_stats_deleted;     /* # of ires deleted from the bucket */
 128 } ire_stats_t;
 129 
 130 #define TX_FANOUT_SIZE  128
 131 #define IDLHASHINDEX(X) \
 132         ((((uintptr_t)(X) >> 2) + ((uintptr_t)(X) >> 9)) & (TX_FANOUT_SIZE - 1))
 133 
 134 /* Data structure to represent addresses */
 135 typedef struct srcid_map {
 136         struct srcid_map        *sm_next;
 137         in6_addr_t              sm_addr;        /* Local address */
 138         uint_t                  sm_srcid;       /* source id */
 139         uint_t                  sm_refcnt;      /* > 1 ipif with same addr? */
 140         zoneid_t                sm_zoneid;      /* zone id */




  96 #define IP6_STAT_UPDATE(ipst, x, n)     \
  97         ((ipst)->ips_ip6_statistics.x.value.ui64 += (n))
  98 
  99 typedef struct ip6_stat {
 100         kstat_named_t   ip6_udp_fannorm;
 101         kstat_named_t   ip6_udp_fanmb;
 102         kstat_named_t   ip6_recv_pullup;
 103         kstat_named_t   ip6_db_ref;
 104         kstat_named_t   ip6_notaligned;
 105         kstat_named_t   ip6_multimblk;
 106         kstat_named_t   ipsec_proto_ahesp;
 107         kstat_named_t   ip6_out_sw_cksum;
 108         kstat_named_t   ip6_out_sw_cksum_bytes;
 109         kstat_named_t   ip6_in_sw_cksum;
 110         kstat_named_t   ip6_tcp_in_full_hw_cksum_err;
 111         kstat_named_t   ip6_tcp_in_part_hw_cksum_err;
 112         kstat_named_t   ip6_tcp_in_sw_cksum_err;
 113         kstat_named_t   ip6_udp_in_full_hw_cksum_err;
 114         kstat_named_t   ip6_udp_in_part_hw_cksum_err;
 115         kstat_named_t   ip6_udp_in_sw_cksum_err;





 116 } ip6_stat_t;
 117 
 118 typedef struct ire_stats {
 119         uint64_t ire_stats_alloced;     /* # of ires alloced */
 120         uint64_t ire_stats_freed;       /* # of ires freed */
 121         uint64_t ire_stats_inserted;    /* # of ires inserted in the bucket */
 122         uint64_t ire_stats_deleted;     /* # of ires deleted from the bucket */
 123 } ire_stats_t;
 124 
 125 #define TX_FANOUT_SIZE  128
 126 #define IDLHASHINDEX(X) \
 127         ((((uintptr_t)(X) >> 2) + ((uintptr_t)(X) >> 9)) & (TX_FANOUT_SIZE - 1))
 128 
 129 /* Data structure to represent addresses */
 130 typedef struct srcid_map {
 131         struct srcid_map        *sm_next;
 132         in6_addr_t              sm_addr;        /* Local address */
 133         uint_t                  sm_srcid;       /* source id */
 134         uint_t                  sm_refcnt;      /* > 1 ipif with same addr? */
 135         zoneid_t                sm_zoneid;      /* zone id */