summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h')
-rw-r--r--usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h286
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);
OpenPOWER on IntegriCloud