diff options
Diffstat (limited to 'include/net/udp.h')
-rw-r--r-- | include/net/udp.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/net/udp.h b/include/net/udp.h index 98755ebaf163..98cb09ca3a27 100644 --- a/include/net/udp.h +++ b/include/net/udp.h | |||
@@ -139,6 +139,12 @@ extern int udp_lib_setsockopt(struct sock *sk, int level, int optname, | |||
139 | int (*push_pending_frames)(struct sock *)); | 139 | int (*push_pending_frames)(struct sock *)); |
140 | 140 | ||
141 | DECLARE_SNMP_STAT(struct udp_mib, udp_statistics); | 141 | DECLARE_SNMP_STAT(struct udp_mib, udp_statistics); |
142 | DECLARE_SNMP_STAT(struct udp_mib, udp_stats_in6); | ||
143 | |||
144 | /* UDP-Lite does not have a standardized MIB yet, so we inherit from UDP */ | ||
145 | DECLARE_SNMP_STAT(struct udp_mib, udplite_statistics); | ||
146 | DECLARE_SNMP_STAT(struct udp_mib, udplite_stats_in6); | ||
147 | |||
142 | /* | 148 | /* |
143 | * SNMP statistics for UDP and UDP-Lite | 149 | * SNMP statistics for UDP and UDP-Lite |
144 | */ | 150 | */ |
@@ -149,6 +155,25 @@ DECLARE_SNMP_STAT(struct udp_mib, udp_statistics); | |||
149 | if (is_udplite) SNMP_INC_STATS_BH(udplite_statistics, field); \ | 155 | if (is_udplite) SNMP_INC_STATS_BH(udplite_statistics, field); \ |
150 | else SNMP_INC_STATS_BH(udp_statistics, field); } while(0) | 156 | else SNMP_INC_STATS_BH(udp_statistics, field); } while(0) |
151 | 157 | ||
158 | #define UDP6_INC_STATS_BH(field, is_udplite) do { \ | ||
159 | if (is_udplite) SNMP_INC_STATS_BH(udplite_stats_in6, field); \ | ||
160 | else SNMP_INC_STATS_BH(udp_stats_in6, field); } while(0) | ||
161 | #define UDP6_INC_STATS_USER(field, is_udplite) do { \ | ||
162 | if (is_udplite) SNMP_INC_STATS_USER(udplite_stats_in6, field); \ | ||
163 | else SNMP_INC_STATS_USER(udp_stats_in6, field); } while(0) | ||
164 | |||
165 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | ||
166 | #define UDPX_INC_STATS_BH(sk, field) \ | ||
167 | do { \ | ||
168 | if ((sk)->sk_family == AF_INET) \ | ||
169 | UDP_INC_STATS_BH(field, 0); \ | ||
170 | else \ | ||
171 | UDP6_INC_STATS_BH(field, 0); \ | ||
172 | } while (0); | ||
173 | #else | ||
174 | #define UDPX_INC_STATS_BH(sk, field) UDP_INC_STATS_BH(field, 0) | ||
175 | #endif | ||
176 | |||
152 | /* /proc */ | 177 | /* /proc */ |
153 | struct udp_seq_afinfo { | 178 | struct udp_seq_afinfo { |
154 | struct module *owner; | 179 | struct module *owner; |