diff options
author | bms <bms@FreeBSD.org> | 2009-05-27 18:57:13 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2009-05-27 18:57:13 +0000 |
commit | f73e96a405eebf9eaa5e51a108501e1dc0b18607 (patch) | |
tree | ee589f6d515dd1a5ff120c282256a7d216d33739 /usr.sbin/ifmcstat | |
parent | 954b6f0f3beed7a34bbcd1cdc1cf7df501666617 (diff) | |
download | FreeBSD-src-f73e96a405eebf9eaa5e51a108501e1dc0b18607.zip FreeBSD-src-f73e96a405eebf9eaa5e51a108501e1dc0b18607.tar.gz |
Merge final round of MLD changes from p4:
ip6_input.c, in6.h:
* Add netinet6-specific mbuf flag M_RTALERT_MLD, shadowing M_PROTO6.
* Always set this flag if HBH Router Alert option is present for MLD,
even when not forwarding.
icmp6.c:
* In icmp6_input(), spell m->m_pkthdr.rcvif as ifp to be consistent.
* Use scope ID for verifying input. Do not apply SSM filters here, no inpcb.
* Check for M_RTALERT_MLD when validating MLD traffic, as we can't see
IPv6 hop options outside of ip6_input().
in6_mcast.c:
* Use KAME scope/zone ID in in6_multi.
* Update net.inet6.ip6.mcast.filters implementation to use scope IDs
for comparisons.
* Fix scope ID treatment in multicast socket option processing.
Scope IDs passed in from userland will be ignored as other less
ambiguous APIs exist for specifying the link.
* Tighten userland input checks in IPv6 SSM delta and full-state ops.
* Source filter embedded scope IDs need to be revisited, for now
just clear them and ignore them on input.
* Adapt KAME behaviour of looking up the scope ID in the default zone
for multicast leaves, when the interface is ambiguous.
mld6.c:
* Tighten origin checks on MLD traffic as per RFC3810 Section 6.2:
* ip6_src MAY be the unspecified address for MLDv1 reports.
* ip6_src MAY have link-local address scope for MLDv1 reports,
MLDv1 queries, and MLDv2 queries.
* Perform address field validation *before* accepting queries.
* Use KAME scope/zone ID in query/report processing.
* Break const correctness for mld_v1_input_report(), mld_v1_input_query()
as we temporarily modify the input mbuf chain.
* Clear the scope ID before handoff to userland MLD daemon.
* Fix MLDv1 old querier present timer processing.
With the protocol defaults, hosts should revert to MLDv2 after 260s.
* Add net.inet6.mld.v1enable sysctl, default to on.
ifmcstat.c:
* Use sysctl by default; -K requests kvm(3) if so compiled.
mld.4:
* Connect man page to build.
Tested using PCS.
Diffstat (limited to 'usr.sbin/ifmcstat')
-rw-r--r-- | usr.sbin/ifmcstat/ifmcstat.8 | 22 | ||||
-rw-r--r-- | usr.sbin/ifmcstat/ifmcstat.c | 4 |
2 files changed, 12 insertions, 14 deletions
diff --git a/usr.sbin/ifmcstat/ifmcstat.8 b/usr.sbin/ifmcstat/ifmcstat.8 index 5805183..5a6956d 100644 --- a/usr.sbin/ifmcstat/ifmcstat.8 +++ b/usr.sbin/ifmcstat/ifmcstat.8 @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 28, 2009 +.Dd May 27, 2009 .Dt IFMCSTAT 8 .Os .Sh NAME @@ -71,8 +71,8 @@ Source lists for each group will also be printed. .Pp If specified twice, and .Xr kvm 3 -is in use, the IGMP timers for each interface -and the IGMP source list counters for each group +is in use, the control plane timers for each interface +and the source list counters for each group will also be printed. .El .Pp @@ -82,9 +82,9 @@ has been built with support for .Xr kvm 3 : .Bl -tag -width Fl .It Fl K -forces the use of +attempts to use .Xr kvm 3 -to be disabled. +to retrieve the multicast group information. .It Fl M Ar core extracts values associated with the name list from the specified core, instead of the default @@ -94,6 +94,11 @@ extracts the name list from the specified kernel instead of the default, which is the kernel image the system has booted from. .El .Sh IMPLEMENTATION NOTES +.Nm +will always print the embedded scope IDs of IPv6 multicast group +memberships. +This is because memberships are always scoped to an interface. +.Pp When run with the .Fl v option, @@ -119,13 +124,6 @@ is more limited. This support is recommended for debugging purposes. It requires super-user privilege if used to inspect a running kernel. .Pp -The -.Xr kvm 3 -back-end will be used by default if -.Nm -is run with super-user privileges, unless the -.Fl K -option is specified. .Sh SEE ALSO .Xr getifaddrs 3 , .Xr getifmaddrs 3 , diff --git a/usr.sbin/ifmcstat/ifmcstat.c b/usr.sbin/ifmcstat/ifmcstat.c index 0aea6fd..e45e36d 100644 --- a/usr.sbin/ifmcstat/ifmcstat.c +++ b/usr.sbin/ifmcstat/ifmcstat.c @@ -264,13 +264,13 @@ main(int argc, char **argv) usage(); #ifdef WITH_KVM - if (!Kflag) + if (Kflag) error = ifmcstat_kvm(kernel, core); /* * If KVM failed, and user did not explicitly specify a core file, * or force KVM backend to be disabled, try the sysctl backend. */ - if (Kflag || (error != 0 && (core == NULL && kernel == NULL))) + if (!Kflag || (error != 0 && (core == NULL && kernel == NULL))) #endif error = ifmcstat_getifmaddrs(); if (error != 0) |