1/*- 2 * Copyright (c) 2003-2009 Sam Leffler, Errno Consulting 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 10 unchanged lines hidden (view full) --- 19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#include <sys/cdefs.h> |
27__FBSDID("$FreeBSD: head/sys/net80211/ieee80211_freebsd.c 248539 2013-03-20 02:42:52Z adrian $"); |
28 29/* 30 * IEEE 802.11 support (FreeBSD-specific code) 31 */ 32#include "opt_wlan.h" 33 34#include <sys/param.h> 35#include <sys/kernel.h> --- 661 unchanged lines hidden (view full) --- 697 struct ieee80211_csa_event iev; 698 699 memset(&iev, 0, sizeof(iev)); 700 iev.iev_flags = c->ic_flags; 701 iev.iev_freq = c->ic_freq; 702 iev.iev_ieee = c->ic_ieee; 703 iev.iev_mode = mode; 704 iev.iev_count = count; |
705 CURVNET_SET(ifp->if_vnet); |
706 rt_ieee80211msg(ifp, RTM_IEEE80211_CSA, &iev, sizeof(iev)); |
707 CURVNET_RESTORE(); |
708} 709 710void 711ieee80211_notify_radar(struct ieee80211com *ic, 712 const struct ieee80211_channel *c) 713{ 714 struct ifnet *ifp = ic->ic_ifp; 715 struct ieee80211_radar_event iev; 716 717 memset(&iev, 0, sizeof(iev)); 718 iev.iev_flags = c->ic_flags; 719 iev.iev_freq = c->ic_freq; 720 iev.iev_ieee = c->ic_ieee; |
721 CURVNET_SET(ifp->if_vnet); |
722 rt_ieee80211msg(ifp, RTM_IEEE80211_RADAR, &iev, sizeof(iev)); |
723 CURVNET_RESTORE(); |
724} 725 726void 727ieee80211_notify_cac(struct ieee80211com *ic, 728 const struct ieee80211_channel *c, enum ieee80211_notify_cac_event type) 729{ 730 struct ifnet *ifp = ic->ic_ifp; 731 struct ieee80211_cac_event iev; 732 733 memset(&iev, 0, sizeof(iev)); 734 iev.iev_flags = c->ic_flags; 735 iev.iev_freq = c->ic_freq; 736 iev.iev_ieee = c->ic_ieee; 737 iev.iev_type = type; |
738 CURVNET_SET(ifp->if_vnet); |
739 rt_ieee80211msg(ifp, RTM_IEEE80211_CAC, &iev, sizeof(iev)); |
740 CURVNET_RESTORE(); |
741} 742 743void 744ieee80211_notify_node_deauth(struct ieee80211_node *ni) 745{ 746 struct ieee80211vap *vap = ni->ni_vap; 747 struct ifnet *ifp = vap->iv_ifp; 748 --- 19 unchanged lines hidden (view full) --- 768{ 769 struct ifnet *ifp = vap->iv_ifp; 770 struct ieee80211_country_event iev; 771 772 memset(&iev, 0, sizeof(iev)); 773 IEEE80211_ADDR_COPY(iev.iev_addr, bssid); 774 iev.iev_cc[0] = cc[0]; 775 iev.iev_cc[1] = cc[1]; |
776 CURVNET_SET(ifp->if_vnet); |
777 rt_ieee80211msg(ifp, RTM_IEEE80211_COUNTRY, &iev, sizeof(iev)); |
778 CURVNET_RESTORE(); |
779} 780 781void 782ieee80211_notify_radio(struct ieee80211com *ic, int state) 783{ 784 struct ifnet *ifp = ic->ic_ifp; 785 struct ieee80211_radio_event iev; 786 787 memset(&iev, 0, sizeof(iev)); 788 iev.iev_state = state; |
789 CURVNET_SET(ifp->if_vnet); |
790 rt_ieee80211msg(ifp, RTM_IEEE80211_RADIO, &iev, sizeof(iev)); |
791 CURVNET_RESTORE(); |
792} 793 794void 795ieee80211_load_module(const char *modname) 796{ 797 798#ifdef notyet 799 (void)kern_kldload(curthread, modname, NULL); --- 120 unchanged lines hidden --- |