Documentation ¶
Index ¶
- Constants
- Variables
- type BSS
- type BSSStatus
- type Client
- func (c *Client) BSS(ifi *Interface) (*BSS, error)
- func (c *Client) Close() error
- func (c *Client) Conn() *genetlink.Conn
- func (c *Client) Interfaces() ([]*Interface, error)
- func (c *Client) NewMon(phy int) error
- func (c *Client) Phys() ([]*Phy, error)
- func (c *Client) RegisterFrame(ifi *Interface, t uint16, match []byte) error
- func (c *Client) RemainOnChannel(ifi *Interface, freq, dur int) error
- func (c *Client) Scan() error
- func (c *Client) StartReceive()
- func (c *Client) StationInfo(ifi *Interface) ([]*StationInfo, error)
- type IE
- type Interface
- type InterfaceType
- type Nan
- type NanClient
- type Phy
- type StationInfo
Constants ¶
const (
IE_SSID = 0
)
List of 802.11 Information Element types.
Variables ¶
var NanClients = map[uint32]*Nan{}
Functions ¶
This section is empty.
Types ¶
type BSS ¶
type BSS struct { // The service set identifier, or "network name" of the BSS. SSID string // The BSS service set identifier. In infrastructure mode, this is the // hardware address of the wireless access point that a client is associated // with. BSSID net.HardwareAddr // The frequency used by the BSS, in MHz. Frequency int // The interval between beacon transmissions for this BSS. BeaconInterval time.Duration // The time since the client last scanned this BSS's information. LastSeen time.Duration // The status of the client within the BSS. Status BSSStatus }
A BSS is an 802.11 basic service set. It contains information about a wireless network associated with an Interface.
type BSSStatus ¶
type BSSStatus int
A BSSStatus indicates the current status of client within a BSS.
const ( // BSSStatusAuthenticated indicates that a client is authenticated with a BSS. BSSStatusAuthenticated BSSStatus = iota // BSSStatusAssociated indicates that a client is associated with a BSS. BSSStatusAssociated // BSSStatusIBSSJoined indicates that a client has joined an independent BSS. BSSStatusIBSSJoined )
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
A client is the Linux implementation of osClient, which makes use of netlink, generic netlink, and nl80211 to provide access to WiFi device actions and statistics.
func (*Client) Interfaces ¶
Interfaces requests that nl80211 return a list of all WiFi interfaces present on this system.
func (*Client) RegisterFrame ¶
RegisterFrame will ask netlink to deliver frames matching a pattern. Note that wpa_supplicant also registers for frames - and may prevent us from getting registered.
This must be called on the receiving connection (cr), before the read loop.
func (*Client) RemainOnChannel ¶
func (*Client) StartReceive ¶
func (c *Client) StartReceive()
Separate client thread receiving frames and messages. Send and 'stay on channel' using the primary channel, to avoid locking issues.
func (*Client) StationInfo ¶
func (c *Client) StationInfo(ifi *Interface) ([]*StationInfo, error)
StationInfo requests that nl80211 return all station info for the specified Interface.
type Interface ¶
type Interface struct { // The index of the interface. Index int // The name of the interface. Name string // The hardware address of the interface. HardwareAddr net.HardwareAddr // The physical device that this interface belongs to. PHY int // The virtual device number of this interface within a PHY. Device int // The operating mode of the interface. Type InterfaceType // The interface's wireless frequency in MHz. Frequency int }
An Interface is a WiFi network interface.
type InterfaceType ¶
type InterfaceType int
An InterfaceType is the operating mode of an Interface.
const ( // InterfaceTypeUnspecified indicates that an interface's type is unspecified // and the driver determines its function. InterfaceTypeUnspecified InterfaceType = iota // InterfaceTypeAdHoc indicates that an interface is part of an independent // basic service set (BSS) of client devices without a controlling access // point. InterfaceTypeAdHoc // InterfaceTypeStation indicates that an interface is part of a managed // basic service set (BSS) of client devices with a controlling access point. InterfaceTypeStation // InterfaceTypeAP indicates that an interface is an access point. InterfaceTypeAP // InterfaceTypeAPVLAN indicates that an interface is a VLAN interface // associated with an access point. InterfaceTypeAPVLAN // InterfaceTypeWDS indicates that an interface is a wireless distribution // interface, used as part of a network of multiple access points. InterfaceTypeWDS // InterfaceTypeMonitor indicates that an interface is a monitor interface, // receiving all frames from all clients in a given network. InterfaceTypeMonitor // InterfaceTypeMeshPoint indicates that an interface is part of a wireless // mesh network. InterfaceTypeMeshPoint // InterfaceTypeP2PClient indicates that an interface is a client within // a peer-to-peer network. InterfaceTypeP2PClient // InterfaceTypeP2PGroupOwner indicates that an interface is the group // owner within a peer-to-peer network. InterfaceTypeP2PGroupOwner // InterfaceTypeP2PDevice indicates that an interface is a device within // a peer-to-peer client network. InterfaceTypeP2PDevice // InterfaceTypeOCB indicates that an interface is outside the context // of a basic service set (BSS). InterfaceTypeOCB // InterfaceTypeNAN indicates that an interface is part of a near-me // area network (NAN). InterfaceTypeNAN )
func (InterfaceType) String ¶
func (t InterfaceType) String() string
String returns the string representation of an InterfaceType.
type Nan ¶
type Nan struct { IFace *Interface SendErrors int LastSent time.Time LastSentTime time.Duration LastSentSeq uint32 // contains filtered or unexported fields }
func (*Nan) SendDiscovery ¶
Send NAN Publish or Subscribe frame
func (*Nan) SendFollowup ¶
Send data using NAN "FollowUp" function, in a SDF
type Phy ¶
type Phy struct { // The index of the interface. Index int // The name of the interface. Name string // The hardware address of the interface. HardwareAddr net.HardwareAddr // The physical device that this interface belongs to. PHY int // The virtual device number of this interface within a PHY. Device int // The operating mode of the interface. Type InterfaceType // The interface's wireless frequency in MHz. Frequency int }
type StationInfo ¶
type StationInfo struct { // The hardware address of the station. HardwareAddr net.HardwareAddr // The time since the station last connected. Connected time.Duration // The time since wireless activity last occurred. Inactive time.Duration // The number of bytes received by this station. ReceivedBytes int // The number of bytes transmitted by this station. TransmittedBytes int // The number of packets received by this station. ReceivedPackets int // The number of packets transmitted by this station. TransmittedPackets int // The current data receive bitrate, in bits/second. ReceiveBitrate int // The current data transmit bitrate, in bits/second. TransmitBitrate int // The signal strength of this station's connection, in dBm. Signal int // The number of times the station has had to retry while sending a packet. TransmitRetries int // The number of times a packet transmission failed. TransmitFailed int // The number of times a beacon loss was detected. BeaconLoss int }
StationInfo contains statistics about a WiFi interface operating in station mode.