PERFORCE change 167334 for review

John Baldwin jhb at FreeBSD.org
Fri Aug 14 19:25:42 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=167334

Change 167334 by jhb at jhb_jhbbsd on 2009/08/14 19:25:33

	IFC @167331

Affected files ...

.. //depot/projects/smpng/share/man/man9/Makefile#8 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211.9#2 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211_amrr.9#1 branch
.. //depot/projects/smpng/share/man/man9/ieee80211_beacon.9#1 branch
.. //depot/projects/smpng/share/man/man9/ieee80211_bmiss.9#1 branch
.. //depot/projects/smpng/share/man/man9/ieee80211_crypto.9#2 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211_ddb.9#1 branch
.. //depot/projects/smpng/share/man/man9/ieee80211_input.9#2 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211_ioctl.9#2 delete
.. //depot/projects/smpng/share/man/man9/ieee80211_node.9#2 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211_output.9#2 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211_proto.9#2 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211_radiotap.9#2 integrate
.. //depot/projects/smpng/share/man/man9/ieee80211_regdomain.9#1 branch
.. //depot/projects/smpng/share/man/man9/ieee80211_scan.9#1 branch
.. //depot/projects/smpng/share/man/man9/ieee80211_vap.9#1 branch
.. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#44 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#84 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#58 integrate
.. //depot/projects/smpng/sys/amd64/amd64/trap.c#67 integrate
.. //depot/projects/smpng/sys/amd64/conf/GENERIC#83 integrate
.. //depot/projects/smpng/sys/amd64/conf/NOTES#53 integrate
.. //depot/projects/smpng/sys/amd64/conf/XENHVM#4 integrate
.. //depot/projects/smpng/sys/amd64/include/apicvar.h#23 integrate
.. //depot/projects/smpng/sys/amd64/include/smp.h#22 integrate
.. //depot/projects/smpng/sys/arm/arm/minidump_machdep.c#2 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#53 integrate
.. //depot/projects/smpng/sys/cam/cam_ccb.h#13 integrate
.. //depot/projects/smpng/sys/cam/cam_xpt.c#59 integrate
.. //depot/projects/smpng/sys/cddl/compat/opensolaris/kern/opensolaris.c#5 integrate
.. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#80 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#63 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_socket.c#50 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_sockio.c#18 integrate
.. //depot/projects/smpng/sys/conf/files#250 integrate
.. //depot/projects/smpng/sys/conf/options.amd64#26 integrate
.. //depot/projects/smpng/sys/conf/options.i386#64 integrate
.. //depot/projects/smpng/sys/conf/options.pc98#62 integrate
.. //depot/projects/smpng/sys/contrib/altq/altq/altq_subr.c#16 integrate
.. //depot/projects/smpng/sys/contrib/ipfilter/netinet/fil.c#25 integrate
.. //depot/projects/smpng/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#14 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf.c#37 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf_if.c#18 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#35 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf_subr.c#10 integrate
.. //depot/projects/smpng/sys/contrib/rdma/rdma_cma.c#7 integrate
.. //depot/projects/smpng/sys/ddb/db_sym.c#8 integrate
.. //depot/projects/smpng/sys/dev/aac/aac.c#66 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi.c#115 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_battery.c#23 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#47 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_dock.c#7 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#45 integrate
.. //depot/projects/smpng/sys/dev/adb/adb_bus.c#4 integrate
.. //depot/projects/smpng/sys/dev/alc/if_alc.c#3 integrate
.. //depot/projects/smpng/sys/dev/amdtemp/amdtemp.c#2 integrate
.. //depot/projects/smpng/sys/dev/amr/amr.c#50 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#99 integrate
.. //depot/projects/smpng/sys/dev/atkbdc/psm.c#16 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_os.c#31 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#10 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#20 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_drv.c#17 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_pciids.h#15 integrate
.. //depot/projects/smpng/sys/dev/drm/r600_cp.c#5 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_drv.h#22 integrate
.. //depot/projects/smpng/sys/dev/ips/ips_pci.c#13 integrate
.. //depot/projects/smpng/sys/dev/isp/isp.c#60 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#61 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.h#44 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_ioctl.h#20 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_library.c#13 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_library.h#8 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_pci.c#58 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_sbus.c#29 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_stds.h#5 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_target.c#26 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_target.h#17 integrate
.. //depot/projects/smpng/sys/dev/isp/ispmbox.h#28 integrate
.. //depot/projects/smpng/sys/dev/isp/ispreg.h#12 integrate
.. //depot/projects/smpng/sys/dev/isp/ispvar.h#39 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2300.h#11 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2400.h#2 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2500.h#1 branch
.. //depot/projects/smpng/sys/dev/ispfw/ispfw.c#17 integrate
.. //depot/projects/smpng/sys/dev/mfi/mfi.c#29 integrate
.. //depot/projects/smpng/sys/dev/mfi/mfi_ioctl.h#8 integrate
.. //depot/projects/smpng/sys/dev/mfi/mfireg.h#11 integrate
.. //depot/projects/smpng/sys/dev/mlx/mlx.c#24 integrate
.. //depot/projects/smpng/sys/dev/mmc/mmc.c#12 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#72 integrate
.. //depot/projects/smpng/sys/dev/pst/pst-iop.c#7 integrate
.. //depot/projects/smpng/sys/dev/rp/rp.c#27 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#37 integrate
.. //depot/projects/smpng/sys/dev/twe/twe.c#16 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/usb_controller.c#12 integrate
.. //depot/projects/smpng/sys/dev/usb/input/ukbd.c#10 integrate
.. //depot/projects/smpng/sys/dev/usb/net/usb_ethernet.c#8 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_compat_linux.c#12 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_dev.c#15 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_handle_request.c#13 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_hub.c#13 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#143 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_upgt.c#8 integrate
.. //depot/projects/smpng/sys/dev/xen/blkback/blkback.c#4 integrate
.. //depot/projects/smpng/sys/dev/xen/netback/netback.c#3 integrate
.. //depot/projects/smpng/sys/fs/nfs/nfsport.h#8 integrate
.. //depot/projects/smpng/sys/fs/unionfs/union_subr.c#40 integrate
.. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#34 integrate
.. //depot/projects/smpng/sys/i386/bios/smapi.c#11 integrate
.. //depot/projects/smpng/sys/i386/bios/smbios.c#7 integrate
.. //depot/projects/smpng/sys/i386/bios/vpd.c#7 integrate
.. //depot/projects/smpng/sys/i386/conf/GENERIC#114 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#145 integrate
.. //depot/projects/smpng/sys/i386/i386/local_apic.c#66 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#144 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#122 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#116 integrate
.. //depot/projects/smpng/sys/i386/include/apicvar.h#35 integrate
.. //depot/projects/smpng/sys/i386/include/smp.h#31 integrate
.. //depot/projects/smpng/sys/i386/xen/mp_machdep.c#13 integrate
.. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#44 integrate
.. //depot/projects/smpng/sys/ia64/include/smp.h#10 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#123 integrate
.. //depot/projects/smpng/sys/kern/kern_jail.c#76 integrate
.. //depot/projects/smpng/sys/kern/kern_linker.c#105 integrate
.. //depot/projects/smpng/sys/kern/kern_poll.c#37 integrate
.. //depot/projects/smpng/sys/kern/kern_shutdown.c#79 integrate
.. //depot/projects/smpng/sys/kern/kern_sysctl.c#68 integrate
.. //depot/projects/smpng/sys/kern/kern_uuid.c#22 integrate
.. //depot/projects/smpng/sys/kern/kern_vimage.c#11 delete
.. //depot/projects/smpng/sys/kern/subr_bus.c#82 integrate
.. //depot/projects/smpng/sys/kern/subr_kdb.c#23 integrate
.. //depot/projects/smpng/sys/kern/subr_pcpu.c#15 integrate
.. //depot/projects/smpng/sys/kern/subr_smp.c#57 integrate
.. //depot/projects/smpng/sys/kern/sys_socket.c#34 integrate
.. //depot/projects/smpng/sys/kern/tty_pts.c#21 integrate
.. //depot/projects/smpng/sys/kern/tty_ttydisc.c#7 integrate
.. //depot/projects/smpng/sys/kern/uipc_domain.c#26 integrate
.. //depot/projects/smpng/sys/kern/uipc_socket.c#130 integrate
.. //depot/projects/smpng/sys/kern/uipc_syscalls.c#121 integrate
.. //depot/projects/smpng/sys/kern/uipc_usrreq.c#91 integrate
.. //depot/projects/smpng/sys/kern/vfs_cache.c#59 integrate
.. //depot/projects/smpng/sys/kern/vfs_mount.c#100 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#154 integrate
.. //depot/projects/smpng/sys/mips/include/smp.h#3 integrate
.. //depot/projects/smpng/sys/mips/mips/mp_machdep.c#5 integrate
.. //depot/projects/smpng/sys/modules/ispfw/Makefile#5 integrate
.. //depot/projects/smpng/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/ispfw/isp_2500/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch
.. //depot/projects/smpng/sys/net/bpf.c#90 integrate
.. //depot/projects/smpng/sys/net/bpf_buffer.c#4 integrate
.. //depot/projects/smpng/sys/net/bpf_zerocopy.c#5 integrate
.. //depot/projects/smpng/sys/net/bpfdesc.h#22 integrate
.. //depot/projects/smpng/sys/net/bridgestp.c#30 integrate
.. //depot/projects/smpng/sys/net/flowtable.c#6 integrate
.. //depot/projects/smpng/sys/net/if.c#126 integrate
.. //depot/projects/smpng/sys/net/if_bridge.c#61 integrate
.. //depot/projects/smpng/sys/net/if_clone.c#15 integrate
.. //depot/projects/smpng/sys/net/if_ef.c#33 integrate
.. //depot/projects/smpng/sys/net/if_enc.c#14 integrate
.. //depot/projects/smpng/sys/net/if_epair.c#3 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#102 integrate
.. //depot/projects/smpng/sys/net/if_faith.c#39 integrate
.. //depot/projects/smpng/sys/net/if_gif.c#54 integrate
.. //depot/projects/smpng/sys/net/if_gre.c#42 integrate
.. //depot/projects/smpng/sys/net/if_llatbl.c#5 integrate
.. //depot/projects/smpng/sys/net/if_loop.c#59 integrate
.. //depot/projects/smpng/sys/net/if_mib.c#19 integrate
.. //depot/projects/smpng/sys/net/if_spppsubr.c#45 integrate
.. //depot/projects/smpng/sys/net/if_stf.c#52 integrate
.. //depot/projects/smpng/sys/net/if_tun.c#66 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#69 integrate
.. //depot/projects/smpng/sys/net/netisr.c#20 integrate
.. //depot/projects/smpng/sys/net/raw_cb.c#24 integrate
.. //depot/projects/smpng/sys/net/raw_usrreq.c#32 integrate
.. //depot/projects/smpng/sys/net/route.c#52 integrate
.. //depot/projects/smpng/sys/net/rtsock.c#77 integrate
.. //depot/projects/smpng/sys/net/vnet.c#2 integrate
.. //depot/projects/smpng/sys/net/vnet.h#15 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.c#46 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ddb.c#20 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.c#25 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_scan_sta.c#15 integrate
.. //depot/projects/smpng/sys/netatalk/at_control.c#19 integrate
.. //depot/projects/smpng/sys/netgraph/atm/ng_atm.c#21 integrate
.. //depot/projects/smpng/sys/netgraph/ng_base.c#68 integrate
.. //depot/projects/smpng/sys/netgraph/ng_bridge.c#22 integrate
.. //depot/projects/smpng/sys/netgraph/ng_eiface.c#37 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ether.c#46 integrate
.. //depot/projects/smpng/sys/netgraph/ng_gif.c#22 integrate
.. //depot/projects/smpng/sys/netgraph/ng_iface.c#39 integrate
.. //depot/projects/smpng/sys/netgraph/ng_pipe.c#3 integrate
.. //depot/projects/smpng/sys/netgraph/ng_source.c#19 integrate
.. //depot/projects/smpng/sys/netinet/icmp6.h#17 integrate
.. //depot/projects/smpng/sys/netinet/icmp_var.h#13 integrate
.. //depot/projects/smpng/sys/netinet/if_ether.c#75 integrate
.. //depot/projects/smpng/sys/netinet/igmp.c#37 integrate
.. //depot/projects/smpng/sys/netinet/in.c#59 integrate
.. //depot/projects/smpng/sys/netinet/in_gif.c#31 integrate
.. //depot/projects/smpng/sys/netinet/in_mcast.c#17 integrate
.. //depot/projects/smpng/sys/netinet/in_pcb.c#101 integrate
.. //depot/projects/smpng/sys/netinet/in_pcb.h#67 integrate
.. //depot/projects/smpng/sys/netinet/in_proto.c#36 integrate
.. //depot/projects/smpng/sys/netinet/in_rmx.c#29 integrate
.. //depot/projects/smpng/sys/netinet/ip_carp.c#38 integrate
.. //depot/projects/smpng/sys/netinet/ip_divert.c#70 integrate
.. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#38 integrate
.. //depot/projects/smpng/sys/netinet/ip_icmp.c#54 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#106 integrate
.. //depot/projects/smpng/sys/netinet/ip_ipsec.c#18 integrate
.. //depot/projects/smpng/sys/netinet/ip_mroute.c#70 integrate
.. //depot/projects/smpng/sys/netinet/ip_options.c#17 integrate
.. //depot/projects/smpng/sys/netinet/ip_output.c#113 integrate
.. //depot/projects/smpng/sys/netinet/ip_var.h#44 integrate
.. //depot/projects/smpng/sys/netinet/ipfw/ip_fw2.c#6 integrate
.. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_nat.c#4 integrate
.. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#4 integrate
.. //depot/projects/smpng/sys/netinet/raw_ip.c#86 integrate
.. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#25 integrate
.. //depot/projects/smpng/sys/netinet/tcp_hostcache.c#23 integrate
.. //depot/projects/smpng/sys/netinet/tcp_input.c#131 integrate
.. //depot/projects/smpng/sys/netinet/tcp_offload.c#9 integrate
.. //depot/projects/smpng/sys/netinet/tcp_output.c#64 integrate
.. //depot/projects/smpng/sys/netinet/tcp_reass.c#11 integrate
.. //depot/projects/smpng/sys/netinet/tcp_sack.c#33 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#118 integrate
.. //depot/projects/smpng/sys/netinet/tcp_syncache.c#75 integrate
.. //depot/projects/smpng/sys/netinet/tcp_timer.c#49 integrate
.. //depot/projects/smpng/sys/netinet/tcp_timewait.c#16 integrate
.. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#82 integrate
.. //depot/projects/smpng/sys/netinet/tcp_var.h#73 integrate
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#96 integrate
.. //depot/projects/smpng/sys/netinet/udp_var.h#17 integrate
.. //depot/projects/smpng/sys/netinet6/dest6.c#10 integrate
.. //depot/projects/smpng/sys/netinet6/frag6.c#26 integrate
.. //depot/projects/smpng/sys/netinet6/icmp6.c#59 integrate
.. //depot/projects/smpng/sys/netinet6/in6.c#64 integrate
.. //depot/projects/smpng/sys/netinet6/in6_gif.c#25 integrate
.. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#41 integrate
.. //depot/projects/smpng/sys/netinet6/in6_mcast.c#5 integrate
.. //depot/projects/smpng/sys/netinet6/in6_pcb.c#67 integrate
.. //depot/projects/smpng/sys/netinet6/in6_proto.c#33 integrate
.. //depot/projects/smpng/sys/netinet6/in6_rmx.c#25 integrate
.. //depot/projects/smpng/sys/netinet6/in6_src.c#45 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_forward.c#29 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_input.c#69 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_ipsec.c#10 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#43 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_output.c#68 integrate
.. //depot/projects/smpng/sys/netinet6/mld6.c#34 integrate
.. //depot/projects/smpng/sys/netinet6/nd6.c#59 integrate
.. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#38 integrate
.. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#37 integrate
.. //depot/projects/smpng/sys/netinet6/raw_ip6.c#64 integrate
.. //depot/projects/smpng/sys/netinet6/route6.c#17 integrate
.. //depot/projects/smpng/sys/netinet6/scope6.c#18 integrate
.. //depot/projects/smpng/sys/netinet6/udp6_usrreq.c#61 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec.c#39 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec_input.c#23 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec_mbuf.c#16 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec_output.c#21 integrate
.. //depot/projects/smpng/sys/netipsec/key.c#42 integrate
.. //depot/projects/smpng/sys/netipsec/keysock.c#24 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ah.c#19 integrate
.. //depot/projects/smpng/sys/netipsec/xform_esp.c#20 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ipcomp.c#17 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ipip.c#25 integrate
.. //depot/projects/smpng/sys/netipsec/xform_tcp.c#9 integrate
.. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#46 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_diskless.c#27 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_subs.c#41 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#93 integrate
.. //depot/projects/smpng/sys/pc98/cbus/fdc.c#10 integrate
.. //depot/projects/smpng/sys/pc98/conf/NOTES#69 integrate
.. //depot/projects/smpng/sys/powerpc/include/smp.h#6 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/mp_machdep.c#15 integrate
.. //depot/projects/smpng/sys/security/audit/audit.h#14 integrate
.. //depot/projects/smpng/sys/sparc64/include/smp.h#22 integrate
.. //depot/projects/smpng/sys/sun4v/include/smp.h#7 integrate
.. //depot/projects/smpng/sys/sys/bus.h#35 integrate
.. //depot/projects/smpng/sys/sys/jail.h#31 integrate
.. //depot/projects/smpng/sys/sys/lock.h#55 integrate
.. //depot/projects/smpng/sys/sys/param.h#154 integrate
.. //depot/projects/smpng/sys/sys/pcpu.h#29 integrate
.. //depot/projects/smpng/sys/sys/smp.h#22 integrate
.. //depot/projects/smpng/sys/sys/sysctl.h#63 integrate
.. //depot/projects/smpng/sys/sys/vimage.h#19 delete
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#76 integrate
.. //depot/projects/smpng/sys/xdr/xdr_mbuf.c#4 integrate
.. //depot/projects/smpng/sys/xen/xenbus/xenbus_probe.c#5 integrate

Differences ...

==== //depot/projects/smpng/share/man/man9/Makefile#8 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/man/man9/Makefile,v 1.357 2009/07/11 17:36:59 cperciva Exp $
+# $FreeBSD: src/share/man/man9/Makefile,v 1.358 2009/08/12 21:03:16 sam Exp $
 
 MAN=	accept_filter.9 \
 	accf_data.9 \
@@ -121,13 +121,19 @@
 	hashinit.9 \
 	hexdump.9 \
 	ieee80211.9 \
+	ieee80211_amrr.9 \
+	ieee80211_beacon.9 \
+	ieee80211_bmiss.9 \
 	ieee80211_crypto.9 \
+	ieee80211_ddb.9 \
 	ieee80211_input.9 \
-	ieee80211_ioctl.9 \
 	ieee80211_node.9 \
 	ieee80211_output.9 \
 	ieee80211_proto.9 \
 	ieee80211_radiotap.9 \
+	ieee80211_regdomain.9 \
+	ieee80211_scan.9 \
+	ieee80211_vap.9 \
 	ifnet.9 \
 	inittodr.9 \
 	insmntque.9 \
@@ -627,52 +633,62 @@
 MLINKS+=hashinit.9 hashdestroy.9 \
 	hashinit.9 hashinit_flags.9 \
 	hashinit.9 phashinit.9
-MLINKS+=ieee80211.9 ieee80211_attach.9 \
-	ieee80211.9 ieee80211_chan2ieee.9 \
-	ieee80211.9 ieee80211_chan2mode.9 \
-	ieee80211.9 ieee80211_ieee2mhz.9 \
-	ieee80211.9 ieee80211_ifattach.9 \
-	ieee80211.9 ieee80211_ifdetach.9 \
-	ieee80211.9 ieee80211_media2rate.9 \
-	ieee80211.9 ieee80211_media_change.9 \
-	ieee80211.9 ieee80211_media_init.9 \
-	ieee80211.9 ieee80211_media_status.9 \
-	ieee80211.9 ieee80211_mhz2ieee.9 \
-	ieee80211.9 ieee80211_rate2media.9 \
-	ieee80211.9 ieee80211_setmode.9 \
-	ieee80211.9 ieee80211_watchdog.9
-MLINKS+=ieee80211_crypto.9 ieee80211_crypto_attach.9 \
-	ieee80211_crypto.9 ieee80211_crypto_detach.9 \
-	ieee80211_crypto.9 ieee80211_wep_crypt.9
-MLINKS+=ieee80211_input.9 ieee80211_decap.9 \
-	ieee80211_input.9 ieee80211_recv_mgmt.9
-MLINKS+=ieee80211_ioctl.9 ieee80211_cfgget.9 \
-	ieee80211_ioctl.9 ieee80211_cfgset.9
-MLINKS+=ieee80211_node.9 ieee80211_alloc_node.9 \
-	ieee80211_node.9 ieee80211_begin_scan.9 \
-	ieee80211_node.9 ieee80211_create_ibss.9 \
-	ieee80211_node.9 ieee80211_dup_bss.9 \
-	ieee80211_node.9 ieee80211_end_scan.9 \
-	ieee80211_node.9 ieee80211_find_node.9 \
-	ieee80211_node.9 ieee80211_free_allnodes.9 \
+MLINKS+=ieee80211.9 ieee80211_ifattach.9 \
+	ieee80211.9 ieee80211_ifdetach.9
+MLINKS+=ieee80211_amrr.9 ieee80211_amrr_init.9 \
+	ieee80211_amrr.9 ieee80211_amrr_cleanup.9 \
+	ieee80211_amrr.9 ieee80211_amrr_setinterval.9 \
+	ieee80211_amrr.9 ieee80211_amrr_node_init.9 \
+	ieee80211_amrr.9 ieee80211_amrr_tx_complete.9 \
+	ieee80211_amrr.9 ieee80211_amrr_tx_update.9
+MLINKS+=ieee80211_beacon.9 ieee80211_beacon_alloc.9 \
+	ieee80211_beacon.9 ieee80211_beacon_update.9 \
+	ieee80211_beacon.9 ieee80211_beacon_notify.9
+MLINKS+=ieee80211_bmiss.9 ieee80211_beacon_miss.9
+MLINKS+=ieee80211_crypto.9 ieee80211_key_update_begin.9 \
+	ieee80211_crypto.9 ieee80211_key_update_end.9 \
+	ieee80211_crypto.9 ieee80211_crypto_newkey.9 \
+	ieee80211_crypto.9 ieee80211_crypto_setkey.9 \
+	ieee80211_crypto.9 ieee80211_crypto_delglobalkeys.9 \
+	ieee80211_crypto.9 ieee80211_crypto_reload_keys.9 \
+	ieee80211_crypto.9 ieee80211_crypto_decap.9 \
+	ieee80211_crypto.9 ieee80211_crypto_encap.9 \
+	ieee80211_crypto.9 ieee80211_crypto_demic.9 \
+	ieee80211_crypto.9 ieee80211_crypto_enmic.9 \
+	ieee80211_crypto.9 ieee80211_notify_michael_failure.9 \
+	ieee80211_crypto.9 ieee80211_notify_replay_failure.9 \
+	ieee80211_crypto.9 ieee80211_crypto_register.9 \
+	ieee80211_crypto.9 ieee80211_crypto_unregister.9 \
+	ieee80211_crypto.9 ieee80211_crypto_available.9
+MLINKS+=ieee80211_input.9 ieee80211_input_all.9
+MLINKS+=ieee80211_node.9 ieee80211_find_rxnode.9 \
+	ieee80211_node.9 ieee80211_find_rxnode_withkey.9 \
+	ieee80211_node.9 ieee80211_ref_node.9 \
+	ieee80211_node.9 ieee80211_unref_node.9 \
 	ieee80211_node.9 ieee80211_free_node.9 \
 	ieee80211_node.9 ieee80211_iterate_nodes.9 \
-	ieee80211_node.9 ieee80211_lookup_node.9 \
-	ieee80211_node.9 ieee80211_next_scan.9 \
-	ieee80211_node.9 ieee80211_node_attach.9 \
-	ieee80211_node.9 ieee80211_node_detach.9 \
-	ieee80211_node.9 ieee80211_node_lateattach.9 \
-	ieee80211_node.9 ieee80211_timeout_nodes.9
-MLINKS+=ieee80211_output.9 ieee80211_add_rates.9 \
-	ieee80211_output.9 ieee80211_add_xrates.9 \
-	ieee80211_output.9 ieee80211_encap.9 \
-	ieee80211_output.9 ieee80211_send_mgmt.9
-MLINKS+=ieee80211_proto.9 ieee80211_dump_pkt.9 \
-	ieee80211_proto.9 ieee80211_fix_rate.9 \
-	ieee80211_proto.9 ieee80211_print_essid.9 \
-	ieee80211_proto.9 ieee80211_proto_attach.9 \
-	ieee80211_proto.9 ieee80211_proto_detach.9
-MLINKS+=ieee80211_radiotap.9 radiotap.9
+	ieee80211_node.9 ieee80211_dump_node.9 \
+	ieee80211_node.9 ieee80211_dump_nodes.9
+MLINKS+=ieee80211_output.9 M_WME_GETAC.9 \
+	ieee80211_output.9 M_SEQNO_GET.9 \
+	ieee80211_output.9 ieee80211_process_callback.9
+MLINKS+=ieee80211_proto.9 ieee80211_new_state.9 \
+	ieee80211_proto.9 ieee80211_start_all.9 \
+	ieee80211_proto.9 ieee80211_stop_all.9 \
+	ieee80211_proto.9 ieee80211_suspend_all.9 \
+	ieee80211_proto.9 ieee80211_resume_all.9 \
+	ieee80211_proto.9 ieee80211_waitfor_parent.9
+MLINKS+=ieee80211_radiotap.9 radiotap.9 \
+	ieee80211_radiotap.9 ieee80211_radiotap_attach.9 \
+	ieee80211_radiotap.9 ieee80211_radiotap_active_vap.9 \
+	ieee80211_radiotap.9 ieee80211_radiotap_active.9 \
+	ieee80211_radiotap.9 ieee80211_radiotap_tx.9
+MLINKS+=ieee80211_regdomain.9 ieee80211_init_channels.9 \
+	ieee80211_regdomain.9 ieee80211_sort_channels.9 \
+	ieee80211_regdomain.9 ieee80211_alloc_countryie.9
+MLINKS+=ieee80211_vap.9 ieee80211_vap_setup.9 \
+	ieee80211_vap.9 ieee80211_vap_attach.9 \
+	ieee80211_vap.9 ieee80211_vap_detach.9
 MLINKS+=ifnet.9 ifaddr.9 \
 	ifnet.9 if_data.9 \
 	ifnet.9 ifqueue.9

==== //depot/projects/smpng/share/man/man9/ieee80211.9#2 (text+ko) ====

@@ -1,6 +1,5 @@
 .\"
-.\" Copyright (c) 2004 Bruce M. Simpson <bms at spc.org>
-.\" Copyright (c) 2004 Darron Broad <darron at kewl.org>
+.\" Copyright (c) 2009 Sam Leffler, Errno Consulting
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -24,237 +23,539 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/ieee80211.9,v 1.4 2005/06/28 20:15:18 hmp Exp $
-.\" $Id: ieee80211.9,v 1.5 2004/03/04 12:33:27 bruce Exp $
+.\" $FreeBSD: src/share/man/man9/ieee80211.9,v 1.5 2009/08/12 21:03:16 sam Exp $
 .\"
-.Dd March 2, 2004
-.Dt IEEE80211 9
+.Dd August 4, 2009
+.Dt NET80211 9
 .Os
 .Sh NAME
-.Nm ieee80211_ifattach , ieee80211_ifdetach ,
-.Nm ieee80211_mhz2ieee , ieee80211_chan2ieee , ieee80211_ieee2mhz ,
-.Nm ieee80211_media_init , ieee80211_media_change , ieee80211_media_status ,
-.Nm ieee80211_watchdog ,
-.Nm ieee80211_setmode , ieee80211_chan2mode ,
-.Nm ieee80211_rate2media , ieee80211_media2rate
-.Nd core 802.11 network stack functions
+.Nm net80211
+.Nd 802.11 network layer
 .Sh SYNOPSIS
 .In net80211/ieee80211_var.h
-.In net80211/ieee80211_proto.h
 .Ft void
-.Fn ieee80211_ifattach "struct ifnet *ifp"
+.Fn ieee80211_ifattach "struct ieee80211com *ic" "const uint8_t macaddr[IEEE80211_ADDR_LEN]"
 .Ft void
-.Fn ieee80211_ifdetach "struct ifnet *ifp"
-.Ft u_int
-.Fn ieee80211_mhz2ieee "u_int freq" "u_int flags"
-.Ft u_int
-.Fn ieee80211_chan2ieee "struct ieee80211com *ic" "struct ieee80211_channel *c"
-.Ft u_int
-.Fn ieee80211_ieee2mhz "u_int chan" "u_int flags"
-.Ft void
-.Fo ieee80211_media_init
-.Fa "struct ifnet *ifp" "ifm_change_cb_t media_change"
-.Fa "ifm_stat_cb_t media_stat"
-.Fc
-.Fa int
-.Fn ieee80211_media_change "struct ifnet *ifp"
-.Fa void
-.Fn ieee80211_media_status "struct ifnet *ifp" "struct ifmediareq *imr"
-.Ft void
-.Fn ieee80211_watchdog "struct ifnet *ifp"
-.Ft int
-.Fn ieee80211_setmode "struct ieee80211com *ic" "enum ieee80211_phymode mode"
-.Ft enum ieee80211_phymode
-.Fo ieee80211_chan2mode
-.Fa "struct ieee80211com *ic" "struct ieee80211_channel *chan"
-.Fc
-.Ft int
-.Fo ieee80211_rate2media
-.Fa "struct ieee80211com *ic" "int rate" "enum ieee80211_phymode mode"
-.Fc
-.Ft int
-.Fn ieee80211_media2rate "int mword"
+.Fn ieee80211_ifdetach "struct ieee80211com *ic"
 .Sh DESCRIPTION
+IEEE 802.11 device drivers are written to use the infrastructure provided
+by the
+.Nm
+software layer.
+This software provides a support framework for drivers that includes
+ifnet cloning, state management, and a user management API by which
+applications interact with 802.11 devices.
+Most drivers depend on the
+.Nm
+layer for protocol services but devices that off-load functionality
+may bypass the layer to connect directly to the device
+(e.g. the
+.Xr ndis 4
+emulation support does this).
+.Pp
+A
+.Nm
+device driver implements a virtual radio API that is exported to
+users through network interfaces (aka vaps) that are cloned from the
+underlying device.
+These interfaces have an operating mode
+(station, adhoc, hostap, wds, monitor, etc.)
+that is fixed for the lifetime of the interface.
+Devices that can support multiple concurrent interfaces allow
+multiple vaps to be cloned.
+This enables construction of interesting applications such as
+an AP vap and one or more WDS vaps
+or multiple AP vaps, each with a different security model.
 The
-.Nm ieee80211
-collection of functions are used to manage wireless network interfaces in the
-system which use the system's software 802.11 network stack.
-Most of these functions require that attachment to the stack is performed
-before calling.
-Several utility functions are also provided; these are safe to call from
-any driver without prior initialization.
+.Nm
+layer virtualizes most 802.11 state
+and coordinates vap state changes including scheduling multiple vaps.
+State that is not virtualized includes the current channel and
+WME/WMM parameters.
+Protocol processing is typically handled entirely in the
+.Nm
+layer with drivers responsible purely for moving data between the host
+and device.
+Similarly,
+.Nm
+handles most
+.Xr ioctl 2
+requests without entering the driver;
+instead drivers are notified of state changes that
+require their involvement.
 .Pp
-.\"
+The virtual radio interface defined by the
+.Nm
+layer means that drivers must be structured to follow specific rules.
+Drivers that support only a single interface at any time must still
+follow these rules.
+.Sh DATA STRUCTURES
+The virtual radio architecture splits state between a single per-device
+.Vt ieee80211com
+structure and one or more
+.Vt ieee80211vap
+structures.
+Drivers are expected to setup various shared state in these structures
+at device attach and during vap creation but otherwise should treat them
+as read-only.
 The
-.Fn ieee80211_ifattach
-function attaches the network interface
-.Fa ifp
-to the 802.11 network stack layer.
-This function must be called before using any of the
-.Nm ieee80211
-functions which need to store driver state across invocations;
+.Vt ieee80211com
+structure is allocated by the
+.Nm
+layer as adjunct data to a device's
+.Vt ifnet ;
+it is accessed through the
+.Vt if_l2com
+structure member.
 The
-.Vt struct ifnet
-instance pointed to by
-.Fa ifp
-MUST be an instance of
-.Vt struct ieee80211com ,
-with various fields initialized to tell
-.Nm ieee80211
-about its capabilities.
-This function performs Ethernet and BPF attachment (by calling
-.Fn ether_ifattach
-and
-.Fn bpfattach2 )
-on behalf of the caller.
-It also implements the
-.Vt ifmedia
-interface.
+.Vt ieee80211vap
+structure is allocated by the driver in the
+.Dq vap create
+method
+and should be extended with any driver-private state.
+This technique of giving the driver control to allocate data structures
+is used for other
+.Nm
+data structures and should be exploited to maintain driver-private state
+together with public
+.Nm
+state.
 .Pp
-.\"
-The
-.Fn ieee80211_ifdetach
-function frees any
-.Nm ieee80211
-structures associated with the driver, and performs Ethernet and BPF
-detachment on behalf of the caller.
+The other main data structures are the station, or node, table
+that tracks peers in the local BSS, and the channel table that defines
+the current set of available radio channels.
+Both tables are bound to the
+.Vt ieee80211com
+structure and shared by all vaps.
+Long-lasting references to a node are counted to guard against
+premature reclamation.
+In particular every packet sent/received holds a node reference
+(either explicitly for transmit or implicitly on receive).
 .Pp
-.\"
 The
-.Fn ieee80211_mhz2ieee
-utility function converts the frequency
-.Fa freq
-(specified in MHz) to an IEEE 802.11 channel number.
+.Vt ieee80211com
+and
+.Vt ieee80211vap
+structures also hold a collection of method pointers that drivers
+fill-in and/or override to take control of certain operations.
+These methods are the primary way drivers are bound to the
+.Nm
+layer and are described below.
+.Sh DRIVER ATTACH/DETACH
+Drivers attach to the
+.Nm
+layer with the
+.Fn ieee80211_ifattach
+function.
+The driver is expected to allocate and setup any device-private
+data structures before passing control.
 The
-.Fa flags
-argument is a hint which specifies whether the frequency is in
-the 2GHz ISM band
-.Pq Vt IEEE80211_CHAN_2GHZ
-or the 5GHz band
-.Pq Vt IEEE80211_CHAN_5GHZ ;
-appropriate clipping of the result is then performed.
+.Vt ieee80211com
+structure must be pre-initialized with state required to setup the
+.Nm
+layer:
+.Bl -tag -width ic_channels
+.It Dv ic_ifp
+Backpointer to the physical device's ifnet.
+.It Dv ic_caps
+Device/driver capabilities; see below for a complete description.
+.It Dv ic_channels
+Table of channels the device is capable of operating on.
+This is initially provided by the driver but may be changed
+through calls that change the regulatory state.
+.It Dv ic_nchan
+Number of entries in 
+.Dv ic_channels .
+.El
 .Pp
-.\"
-The
-.Fn ieee80211_chan2ieee
-function converts the channel specified in
-.Fa *c
-to an IEEE channel number for the driver
-.Fa ic .
-If the conversion would be invalid, an error message is printed to the
-system console.
-This function REQUIRES that the driver is hooked up to the
-.Nm ieee80211
-subsystem.
+On return from
+.Fn ieee80211_ifattach
+the driver is expected to override default callback functions in the
+.Vt ieee80211com
+structure to register it's private routines.
+Methods marked with a
+.Dq *
+must be provided by the driver.
+.Bl -tag -width ic_channels
+.It Dv ic_vap_create*
+Create a vap instance of the specified type (operating mode).
+Any fixed BSSID and/or MAC address is provided.
+Drivers that support multi-bssid operation may honor the requested BSSID
+or assign their own.
+.It Dv ic_vap_delete*
+Destroy a vap instance created with
+.Dv ic_vap_create .
+.It Dv ic_getradiocaps
+Return the list of calibrated channels for the radio.
+The default method returns the current list of channels
+(space permitting).
+.It Dv ic_setregdomain
+Process a request to change regulatory state.
+The routine may reject a request or constrain changes (e.g. reduce
+transmit power caps).
+The default method accepts all proposed changes.
+.It Dv ic_send_mgmt
+Send an 802.11 management frame.
+The default method fabricates the frame using
+.Nm
+state and passes it to the driver through the
+.Dv ic_raw_xmit
+method.
+.It Dv ic_raw_xmit
+Transmit a raw 802.11 frame.
+The default method drops the frame and generates a message on the console.
+.It Dv ic_updateslot
+Update hardware state after an 802.11 IFS slot time change,
+There is no default method; the pointer may be NULL in which case
+it will not be used.
+.It Dv ic_update_mcast
+Update hardware for a change in the multicast packet filter,
+The default method prints a console message.
+.It Dv ic_update_promisc
+Update hardware for a change in the promiscuous mode setting.
+The default method prints a console message.
+.It Dv ic_newassoc
+Update driver/device state for association to a new AP (in station mode)
+or when a new station associates (e.g. in AP mode).
+There is no default method; the pointer may be NULL in which case
+it will not be used.
+.It Dv ic_node_alloc
+Allocate and initialize a
+.Vt ieee80211_node 
+structure.
+This method cannot sleep.
+The default method allocates zero'd memory using
+.Xr malloc 9.
+Drivers should override this method to allocate extended storage
+for their own needs.
+Memory allocated by the driver must be tagged with
+.Dv M_80211_NODE
+to balance the memory allocation statistics.
+.It Dv ic_node_free
+Reclaim storage of a node allocated by 
+.Dv ic_node_alloc  .
+Drivers are expected to
+.Em interpose
+their own method to cleanup private state but must call through
+this method to allow
+.Nm
+to reclaim it's private state.
+.It Dv ic_node_cleanup
+Cleanup state in a
+.Vt ieee80211_node
+created by
+.Dv ic_node_alloc .
+This operation is distinguished from
+.Dv ic_node_free
+in that it may be called long before the node is actually reclaimed
+to cleanup adjunct state.
+This can happen, for example, when a node must not be reclaimed
+due to references held by packets in the transmit queue.
+Drivers typically interpose
+.Dv ic_node_cleanup
+instead of
+.Dv ic_node_free .
+.It Dv ic_node_age
+Age, and potentially reclaim, resources associated with a node.
+The default method ages frames on the power-save queue (in AP mode)
+and pending frames in the receive reorder queues (for stations using A-MPDU).
+.It Dv ic_node_drain
+Reclaim all optional resources associated with a node.
+This call is used to free up resources when they are in short supply,
+.It Dv ic_node_getrssi
+Return the Receive Signal Strength Indication (RSSI) in .5 dBm units for
+the specified node.
+This interface returns a subset of the information
+returned by
+.Dv ic_node_getsignal ,
+The default method calculates a filtered average over the last ten
+samples passed in to
+.Xr ieee80211_input 9
+or
+.Xr ieee80211_input_all 9 .
+.It Dv ic_node_getsignal
+Return the RSSI and noise floor (in .5 dBm units) for a station.
+The default method calculates RSSI as described above;
+the noise floor returned is the last value supplied to
+.Xr ieee80211_input 9
+or
+.Xr ieee80211_input_all 9 .
+.It Dv ic_node_getmimoinfo
+Return MIMO radio state for a station in support of the
+.Dv IEEE80211_IOC_STA_INFO
+ioctl request.
+The default method returns nothing.
+.It Dv ic_scan_start*
+Prepare driver/hardware state for scanning.
+This callback is done in a sleepable context.
+.It Dv ic_scan_end*
+Restore driver/hardware state after scanning completes.
+This callback is done in a sleepable context.
+.It Dv ic_set_channel*
+Set the current radio channel using
+.Vt ic_curchan .
+This callback is done in a sleepable context.
+.It Dv ic_scan_curchan
+Start scanning on a channel.
+This method is called immediately after each channel change
+and must initiate the work to scan a channel and schedule a timer
+to advance to the next channel in the scan list.
+This callback is done in a sleepable context.
+The default method handles active scan work (e.g. sending ProbRequest
+frames), and schedules a call to 
+.Xr ieee80211_scan_next 9
+according to the maximum dwell time for the channel.
+Drivers that off-load scan work to firmware typically use this method
+to trigger per-channel scan activity.
+.It Dv ic_scan_mindwell
+Handle reaching the minimum dwell time on a channel when scanning.
+This event is triggered when one or more stations have been found on
+a channel and the minimum dwell time has been reached.
+This callback is done in a sleepable context.
+The default method signals the scan machinery to advance
+to the next channel as soon as possible.
+Drivers can use this method to preempt further work (e.g. if scanning
+is handled by firmware) or ignore the request to force maximum dwell time
+on a channel.
+.It Dv ic_recv_action
+Process a received Action frame.
+The default method points to
+.Xr ieee80211_recv_action 9
+which provides a mechanism for setting up handlers for each Action frame class.
+.It Dv ic_send_action
+Transmit an Action frame.
+The default method points to
+.Xr ieee80211_send_action 9
+which provides a mechanism for setting up handlers for each Action frame class.
+.It Dv ic_ampdu_enable
+Check if transmit A-MPDU should be enabled for the specified station and AC.
+The default method checks a per-AC traffic rate against a per-vap
+threshold to decide if A-MPDU should be enabled.
+This method also rate-limits ADDBA requests so that requests are not
+made too frequently when a receiver has limited resources.
+.It Dv ic_addba_request
+Request A-MPDU transmit aggregation.
+The default method sets up local state and issues an
+ADDBA Request Action frame.
+Drivers may interpose this method if they need to setup private state
+for handling transmit A-MPDU.
+.It Dv ic_addb_response
+Process a received ADDBA Response Action frame and setup resources as
+needed for doing transmit A-MPDU,
+.It Dv ic_addb_stop
+Shutdown an A-MPDU transmit stream for the specified station and AC.
+The default method reclaims local state after sending a DelBA Action frame.
+.It Dv ic_bar_response
+Process a response to a transmitted BAR control frame.
+.It Dv ic_ampdu_rx_start
+Prepare to receive A-MPDU data from the specified station for the TID.
+.It Dv ic_ampdu_rx_stop
+Terminate receipt of A-MPDU data from the specified station for the TID.
+.El
 .Pp
-.\"
-The
-.Fn ieee80211_ieee2mhz
-utility function converts the IEEE channel number
-.Ft chan
-to a frequency (in MHz).
-The
-.Fa flags
-argument is a hint which specifies whether the frequency is in
-the 2GHz ISM band
-.Pq Vt IEEE80211_CHAN_2GHZ
-or the 5GHz band
-.Pq Vt IEEE80211_CHAN_5GHZ ;
-appropriate clipping of the result is then performed.
+Once the
+.Nm 
+layer is attached to a driver there are two more steps typically done
+to complete the work:
+.Bl -enum
+.It
+Setup
+.Dq radiotap support
+for capturing raw 802.11 packets that pass through the device.
+This is done with a call to
+.Xr ieee80211_radiotap_attach 9 .
+.It
+Do any final device setup like enabling interrupts.
+.El
 .Pp
-.\"
+State is torn down and reclaimed with a call to
+.Fn ieee80211_ifdetach .
+Note this call may result in multiple callbacks into the driver
+so it should be done before any critical driver state is reclaimed.
+On return from
+.Fn ieee80211_ifdetach
+all associated vaps and ifnet structures are reclaimed or inaccessible
+to user applications so it is safe to teardown driver state without
+worry about being re-entered.
+The driver is responsible for calling
+.Xr if_free 9
+on the ifnet it allocated for the physical device.
+.Sh DRIVER CAPABILITIES
+Driver/device capabilities are specified using several sets of flags
+in the
+.Vt ieee80211com
+structure.
+General capabilities are specified by
+.Vt ic_caps .
+Hardware cryptographic capabilities are specified by
+.Vt ic_cryptocaps .
+802.11n capabilities, if any, are specified by
+.Vt ic_htcaps .
 The
-.Fn ieee80211_media_init
-function initializes media data structures used by the
-.Vt ifmedia
-interface, for the driver
-.Fa ifp .
-It must be called by the driver after calling
-.Fn ieee80211_attach
-and before calling most
-.Nm ieee80211
-functions.
-The
-.Fa media_change
+.Nm
+layer propagates a subset of these capabilities to each vap through
+the equivalent fields:
+.Vt iv_caps ,
+.Vt iv_cryptocaps ,
 and
-.Fa media_stat
-arguments specify helper functions which will be invoked by the
-.Vt ifmedia
-framework when the user changes or queries media options,
-using a command such as
-.Xr ifconfig 8 .
+.Vt iv_htcaps .
+The following general capabilities are defined:
+.Bl -tag -width IEEE80211_C_8023ENCAP
+.It Dv IEEE80211_C_STA
+Device is capable of operating in station (aka Infrastructure) mode.
+.It Dv IEEE80211_C_8023ENCAP
+Device requires 802.3-encapsulated frames be passed for transmit.
+By default 
+.Nm
+will encapsulate all outbound frames as 802.11 frames (without a PLCP header).
+.It Dv IEEE80211_C_FF
+Device supports Atheros Fast-Frames.
+.It Dv IEEE80211_C_TURBOP
+Device supports Atheros Dynamic Turbo mode.
+.It Dv IEEE80211_C_IBSS
+Device is capable of operating in adhoc/IBSS mode.
+.It Dv IEEE80211_C_PMGT
+Device supports dynamic power-management (aka power save) in station mode.
+.It Dv IEEE80211_C_HOSTAP
+Device is capable of operating as an Access Point in Infrastructure mode.
+.It Dv IEEE80211_C_AHDEMO
+Device is capable of operating in Adhoc Demo mode.
+In this mode the device is used purely to send/receive raw 802.11 frames.
+.It Dv IEEE80211_C_SWRETRY
+Device supports software retry of transmitted frames.
+.It Dv IEEE80211_C_TXPMGT
+Device support dynamic transmit power changes on transmitted frames;
+also known as Transmit Power Control (TPC).
+.It Dv IEEE80211_C_SHSLOT
+Device supports short slot time operation (for 802.11g).
+.It Dv IEEE80211_C_SHPREAMBLE
+Device supports short preamble operation (for 802.11g).
+.It Dv IEEE80211_C_MONITOR
+Device is capable of operating in monitor mode.
+.It Dv IEEE80211_C_DFS

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list