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 */
|