Page MenuHomeFreeBSD

D26578.id77597.diff
No OneTemporary

D26578.id77597.diff

Index: sys/netinet/icmp6.h
===================================================================
--- sys/netinet/icmp6.h
+++ sys/netinet/icmp6.h
@@ -639,6 +639,8 @@
uint64_t icp6s_overflowprfx; /* Too many prefixes. */
uint64_t icp6s_overflownndp; /* Too many neighbour entries. */
uint64_t icp6s_overflowredirect;/* Too many redirects. */
+ uint64_t icp6s_invlhlim; /* Invalid hop limit. */
+ uint64_t icp6s_spare[32];
};
#ifdef _KERNEL
Index: sys/netinet6/icmp6.c
===================================================================
--- sys/netinet6/icmp6.c
+++ sys/netinet6/icmp6.c
@@ -2262,10 +2262,7 @@
goto bad;
}
if (ip6->ip6_hlim != 255) {
- nd6log((LOG_ERR,
- "ICMP6 redirect sent from %s rejected; "
- "hlim=%d (must be 255)\n",
- ip6_sprintf(ip6buf, &src6), ip6->ip6_hlim));
+ ICMP6STAT_INC(icp6s_invlhlim);
goto bad;
}
{
Index: sys/netinet6/nd6_nbr.c
===================================================================
--- sys/netinet6/nd6_nbr.c
+++ sys/netinet6/nd6_nbr.c
@@ -124,7 +124,7 @@
struct ifaddr *ifa;
struct sockaddr_dl proxydl;
union nd_opts ndopts;
- char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN];
+ char ip6bufs[INET6_ADDRSTRLEN];
char *lladdr;
int anycast, lladdrlen, proxy, rflag, tentative, tlladdr;
@@ -137,10 +137,7 @@
ifp = m->m_pkthdr.rcvif;
ip6 = mtod(m, struct ip6_hdr *);
if (ip6->ip6_hlim != 255) {
- nd6log((LOG_ERR,
- "nd6_ns_input: invalid hlim (%d) from %s to %s on %s\n",
- ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src),
- ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp)));
+ ICMP6STAT_INC(icp6s_invlhlim);
goto bads;
}
@@ -623,7 +620,7 @@
struct sockaddr_in6 sin6;
union nd_opts ndopts;
u_char linkhdr[LLE_MAX_LINKHDR];
- char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN];
+ char ip6bufs[INET6_ADDRSTRLEN];
char *lladdr;
size_t linkhdrsize;
int flags, is_override, is_router, is_solicited;
@@ -642,10 +639,7 @@
ifp = m->m_pkthdr.rcvif;
ip6 = mtod(m, struct ip6_hdr *);
if (ip6->ip6_hlim != 255) {
- nd6log((LOG_ERR,
- "nd6_na_input: invalid hlim (%d) from %s to %s on %s\n",
- ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src),
- ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp)));
+ ICMP6STAT_INC(icp6s_invlhlim);
goto bad;
}
Index: sys/netinet6/nd6_rtr.c
===================================================================
--- sys/netinet6/nd6_rtr.c
+++ sys/netinet6/nd6_rtr.c
@@ -158,7 +158,7 @@
struct nd_router_solicit *nd_rs;
struct in6_addr saddr6;
union nd_opts ndopts;
- char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN];
+ char ip6bufs[INET6_ADDRSTRLEN];
char *lladdr;
int lladdrlen;
@@ -178,10 +178,7 @@
/* Sanity checks */
ip6 = mtod(m, struct ip6_hdr *);
if (ip6->ip6_hlim != 255) {
- nd6log((LOG_ERR,
- "%s: invalid hlim (%d) from %s to %s on %s\n", __func__,
- ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src),
- ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp)));
+ ICMP6STAT_INC(icp6s_invlhlim);
goto bad;
}
@@ -359,7 +356,7 @@
struct in6_addr saddr6;
struct nd_defrouter *dr;
union nd_opts ndopts;
- char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN];
+ char ip6bufs[INET6_ADDRSTRLEN];
int mcast;
/*
@@ -377,10 +374,7 @@
ip6 = mtod(m, struct ip6_hdr *);
if (ip6->ip6_hlim != 255) {
- nd6log((LOG_ERR,
- "%s: invalid hlim (%d) from %s to %s on %s\n", __func__,
- ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src),
- ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp)));
+ ICMP6STAT_INC(icp6s_invlhlim);
goto bad;
}
Index: usr.bin/netstat/inet6.c
===================================================================
--- usr.bin/netstat/inet6.c
+++ usr.bin/netstat/inet6.c
@@ -1063,6 +1063,8 @@
"{N:/neighbour entries overflow%s}\n");
p(icp6s_overflowredirect, "\t{:redirect-overflows/%ju} "
"{N:/redirect overflow%s}\n");
+ p(icp6s_invlhlim, "\t{:dropped-invalid-hop-limit/%ju} "
+ "{N:/message%s with invalid hop limit}\n");
xo_close_container("errors");
p(icp6s_pmtuchg, "\t{:path-mtu-changes/%ju} {N:/path MTU change%s}\n");
#undef p

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 12, 5:53 AM (4 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38771695
Default Alt Text
D26578.id77597.diff (4 KB)

Event Timeline