diff options
Diffstat (limited to 'usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h')
-rw-r--r-- | usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h new file mode 100644 index 0000000..16632d3 --- /dev/null +++ b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h @@ -0,0 +1,286 @@ +/*- + * Copyright (c) 2010 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Shteryana Sotirova Shopova under + * sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#define WLAN_IFMODE_MAX WlanIfaceOperatingModeType_tdma +#define WLAN_COUNTRY_CODE_SIZE 3 +#define WLAN_BGSCAN_IDLE_MIN 100 /* XXX */ +#define WLAN_SCAN_VALID_MIN 10 /* XXX */ +#define WLAN_TDMA_MAXSLOTS 2 /* XXX */ + +struct wlan_iface; + +struct wlan_peer { + uint8_t pmac[IEEE80211_ADDR_LEN]; /* key */ + uint16_t associd; + uint16_t vlan; + uint16_t frequency; + uint32_t fflags; + uint8_t txrate; + int8_t rssi; + uint16_t idle; + uint16_t txseqs; + uint16_t rxseqs; + uint16_t txpower; + uint8_t capinfo; + uint32_t state; + uint16_t local_id; + uint16_t peer_id; + SLIST_ENTRY(wlan_peer) wp; +}; + +SLIST_HEAD(wlan_peerlist, wlan_peer); + +struct wlan_scan_result { + uint8_t ssid[IEEE80211_NWID_LEN + 1]; + uint8_t bssid[IEEE80211_ADDR_LEN]; + uint8_t opchannel; + int8_t rssi; + uint16_t frequency; + int8_t noise; + uint16_t bintval; + uint8_t capinfo; + struct wlan_iface *pwif; + SLIST_ENTRY(wlan_scan_result) wsr; +}; + +SLIST_HEAD(wlan_scanlist, wlan_scan_result); + +struct wlan_mac_mac { + uint8_t mac[IEEE80211_ADDR_LEN]; + enum RowStatus mac_status; + SLIST_ENTRY(wlan_mac_mac) wm; +}; + +SLIST_HEAD(wlan_maclist, wlan_mac_mac); + +struct wlan_mesh_route { + struct ieee80211req_mesh_route imroute; + enum RowStatus mroute_status; + SLIST_ENTRY(wlan_mesh_route) wr; +}; + +SLIST_HEAD(wlan_mesh_routes, wlan_mesh_route); + +struct wlan_iface { + char wname[IFNAMSIZ]; + uint32_t index; + char pname[IFNAMSIZ]; + enum WlanIfaceOperatingModeType mode; + uint32_t flags; + uint8_t dbssid[IEEE80211_ADDR_LEN]; + uint8_t dlmac[IEEE80211_ADDR_LEN]; + enum RowStatus status; + enum wlanIfaceState state; + uint8_t internal; + + uint32_t drivercaps; + uint32_t cryptocaps; + uint32_t htcaps; + + uint32_t packet_burst; + uint8_t country_code[WLAN_COUNTRY_CODE_SIZE]; + enum WlanRegDomainCode reg_domain; + uint8_t desired_ssid[IEEE80211_NWID_LEN + 1]; + uint32_t desired_channel; + enum TruthValue dyn_frequency; + enum TruthValue fast_frames; + enum TruthValue dturbo; + int32_t tx_power; + int32_t frag_threshold; + int32_t rts_threshold; + enum TruthValue priv_subscribe; + enum TruthValue bg_scan; + int32_t bg_scan_idle; + int32_t bg_scan_interval; + int32_t beacons_missed; + uint8_t desired_bssid[IEEE80211_ADDR_LEN]; + enum wlanIfaceRoamingMode roam_mode; + enum TruthValue dot11d; + enum TruthValue dot11h; + enum TruthValue dynamic_wds; + enum TruthValue power_save; + enum TruthValue ap_bridge; + int32_t beacon_interval; + int32_t dtim_period; + enum TruthValue hide_ssid; + enum TruthValue inact_process; + enum wlanIfaceDot11gProtMode do11g_protect; + enum TruthValue dot11g_pure; + enum TruthValue dot11n_pure; + enum WlanIfaceDot11nPduType ampdu; + int32_t ampdu_density; + int32_t ampdu_limit; + enum WlanIfaceDot11nPduType amsdu; + int32_t amsdu_limit; + enum TruthValue ht_enabled; + enum TruthValue ht_compatible; + enum wlanIfaceDot11nHTProtMode ht_prot_mode; + enum TruthValue rifs; + enum TruthValue short_gi; + enum wlanIfaceDot11nSMPSMode smps_mode; + int32_t tdma_slot; + int32_t tdma_slot_count; + int32_t tdma_slot_length; + int32_t tdma_binterval; + + struct wlan_peerlist peerlist; + struct ieee80211_stats stats; + uint32_t nchannels; + struct ieee80211_channel *chanlist; + struct ieee80211_roamparams_req roamparams; + struct ieee80211_txparams_req txparams; + + uint32_t scan_flags; + uint32_t scan_duration; + uint32_t scan_mindwell; + uint32_t scan_maxdwell; + enum wlanScanConfigStatus scan_status; + struct wlan_scanlist scanlist; + + uint8_t wepsupported; + enum wlanWepMode wepmode; + int32_t weptxkey; + + uint8_t macsupported; + enum wlanMACAccessControlPolicy mac_policy; + uint32_t mac_nacls; + struct wlan_maclist mac_maclist; + + uint32_t mesh_ttl; + enum TruthValue mesh_peering; + enum TruthValue mesh_forwarding; + enum wlanMeshMetric mesh_metric; + enum wlanMeshPath mesh_path; + enum wlanHWMPRootMode hwmp_root_mode; + uint32_t hwmp_max_hops; + struct wlan_mesh_routes mesh_routelist; + + SLIST_ENTRY(wlan_iface) w_if; +}; + +enum wlan_syscl { + WLAN_MESH_RETRY_TO = 0, + WLAN_MESH_HOLDING_TO, + WLAN_MESH_CONFIRM_TO, + WLAN_MESH_MAX_RETRIES, + WLAN_HWMP_TARGET_ONLY, + WLAN_HWMP_REPLY_FORWARD, + WLAN_HWMP_PATH_LIFETIME, + WLAN_HWMP_ROOT_TO, + WLAN_HWMP_ROOT_INT, + WLAN_HWMP_RANN_INT, + WLAN_HWMP_INACTIVITY_TO, + WLAN_SYSCTL_MAX +}; + +struct wlan_config { + int32_t mesh_retryto; + int32_t mesh_holdingto; + int32_t mesh_confirmto; + int32_t mesh_maxretries; + int32_t hwmp_targetonly; + int32_t hwmp_replyforward; + int32_t hwmp_pathlifetime; + int32_t hwmp_roottimeout; + int32_t hwmp_rootint; + int32_t hwmp_rannint; + int32_t hwmp_inact; +}; + +int wlan_ioctl_init(void); +int wlan_kmodules_load(void); +int wlan_check_media(char *); +int wlan_config_state(struct wlan_iface *, uint8_t); +int wlan_get_opmode(struct wlan_iface *wif); +int wlan_get_local_addr(struct wlan_iface *wif); +int wlan_get_parent(struct wlan_iface *wif); +int wlan_get_driver_caps(struct wlan_iface *wif); +uint8_t wlan_channel_state_to_snmp(uint8_t cstate); +uint32_t wlan_channel_flags_to_snmp(uint32_t cflags); +int wlan_get_channel_list(struct wlan_iface *wif); +int wlan_get_roam_params(struct wlan_iface *wif); +int wlan_get_tx_params(struct wlan_iface *wif); +int wlan_set_tx_params(struct wlan_iface *wif, int32_t pmode); +int wlan_clone_create(struct wlan_iface *); +int wlan_clone_destroy(struct wlan_iface *wif); +int wlan_config_get_dssid(struct wlan_iface *wif); +int wlan_config_set_dssid(struct wlan_iface *wif, char *ssid, int slen); +int wlan_config_get_ioctl(struct wlan_iface *wif, int which); +int wlan_config_set_ioctl(struct wlan_iface *wif, int which, int val, + char *strval, int len); +int wlan_set_scan_config(struct wlan_iface *wif); +int wlan_get_scan_results(struct wlan_iface *wif); +int wlan_get_stats(struct wlan_iface *wif); +int wlan_get_wepmode(struct wlan_iface *wif); +int wlan_set_wepmode(struct wlan_iface *wif); +int wlan_get_weptxkey(struct wlan_iface *wif); +int wlan_set_weptxkey(struct wlan_iface *wif); +int wlan_get_wepkeys(struct wlan_iface *wif); +int wlan_set_wepkeys(struct wlan_iface *wif); +int wlan_get_mac_policy(struct wlan_iface *wif); +int wlan_set_mac_policy(struct wlan_iface *wif); +int wlan_flush_mac_mac(struct wlan_iface *wif); +int wlan_get_mac_acl_macs(struct wlan_iface *wif); +int wlan_add_mac_acl_mac(struct wlan_iface *wif, struct wlan_mac_mac *mmac); +int wlan_del_mac_acl_mac(struct wlan_iface *wif, struct wlan_mac_mac *mmac); + +int32_t wlan_do_sysctl(struct wlan_config *cfg, enum wlan_syscl which, int set); +int wlan_mesh_config_get(struct wlan_iface *wif, int which); +int wlan_mesh_config_set(struct wlan_iface *wif, int which); +int wlan_mesh_flush_routes(struct wlan_iface *wif); +int wlan_mesh_add_route(struct wlan_iface *wif, struct wlan_mesh_route *wmr); +int wlan_mesh_del_route(struct wlan_iface *wif, struct wlan_mesh_route *wmr); +int wlan_mesh_get_routelist(struct wlan_iface *wif); +int wlan_hwmp_config_get(struct wlan_iface *wif, int which); +int wlan_hwmp_config_set(struct wlan_iface *wif, int which); + +/* XXX: static */ + +int wlan_peer_set_vlan(struct wlan_iface *wif, struct wlan_peer *wip, int vlan); +int wlan_get_peerinfo(struct wlan_iface *wif); + +/* XXX*/ +struct wlan_peer *wlan_new_peer(const uint8_t *pmac); +void wlan_free_peer(struct wlan_peer *wip); +int wlan_add_peer(struct wlan_iface *wif, struct wlan_peer *wip); + +struct wlan_scan_result * wlan_scan_new_result(const uint8_t *ssid, + const uint8_t *bssid); +void wlan_scan_free_result(struct wlan_scan_result *sr); +int wlan_scan_add_result(struct wlan_iface *wif, struct wlan_scan_result *sr); + +struct wlan_mac_mac *wlan_mac_new_mac(const uint8_t *mac); +void wlan_mac_free_mac(struct wlan_mac_mac *wmm); +int wlan_mac_add_mac(struct wlan_iface *wif, struct wlan_mac_mac *wmm); + +struct wlan_mesh_route *wlan_mesh_new_route(const uint8_t *dstmac); +int wlan_mesh_add_rtentry(struct wlan_iface *wif, struct wlan_mesh_route *wmr); +void wlan_mesh_free_route(struct wlan_mesh_route *wmr); |