| IEEE80211_NODE(9) | Kernel Developer's Manual | IEEE80211_NODE(9) | 
ieee80211_node_attach,
  ieee80211_node_lateattach,
  ieee80211_node_detach,
  ieee80211_begin_scan,
  ieee80211_next_scan,
  ieee80211_end_scan,
  ieee80211_create_ibss,
  ieee80211_alloc_node,
  ieee80211_dup_bss,
  ieee80211_find_node,
  ieee80211_free_node,
  ieee80211_free_allnodes,
  ieee80211_iterate_nodes —
#include
  <net80211/ieee80211_var.h>
#include
  <net80211/ieee80211_proto.h>
#include
  <net80211/ieee80211_node.h>
void
  
  ieee80211_node_attach(struct
    ieee80211com *ic);
void
  
  ieee80211_node_lateattach(struct
    ieee80211com *ic);
void
  
  ieee80211_node_detach(struct
    ieee80211com *ic);
void
  
  ieee80211_begin_scan(struct
    ieee80211com *ic, int
    reset);
void
  
  ieee80211_next_scan(struct
    ieee80211com *ic);
void
  
  ieee80211_end_scan(struct
    ieee80211com *ic);
void
  
  ieee80211_create_ibss(struct
    ieee80211com *ic, struct ieee80211_channel
    *chan);
struct ieee80211_node *
  
  ieee80211_alloc_node(struct
    ieee80211com *ic,
    u_int8_t *macaddr);
struct ieee80211_node *
  
  ieee80211_dup_bss(struct
    ieee80211_node_table *nt, const u_int8_t
    *macaddr);
struct ieee80211_node *
  
  ieee80211_find_node(struct
    ieee80211_node_table *nt, const u_int8_t
    *macaddr);
void
  
  ieee80211_free_node(struct
    ieee80211_node *ni);
void
  
  ieee80211_free_allnodes(struct
    ieee80211_node_table *nt);
void
  
  ieee80211_iterate_nodes(struct
    ieee80211_node_table *nt, ieee80211_iter_func
    *f, void *arg);
The ieee80211_node_attach() function is
    called from
    ieee80211_ifattach(9)
    to initialize node database management callbacks for the interface
    ic (specifically for memory allocation, node copying
    and node signal inspection). These functions may be overridden in special
    circumstances, as long as this is done after calling
    ieee80211_ifattach(9)
    and prior to any other call which may allocate a node.
The ieee80211_node_lateattach() function
    initialises the ic_bss node element of the interface
    ic during
    ieee80211_media_init(9).
    This late attachment is to account for certain special cases described under
    ieee80211_node_attach().
The ieee80211_node_detach() function
    destroys all node database state associated with the interface
    ic, and is usually called during device detach.
The ieee80211_begin_scan() function
    initialises the node database in preparation of a scan for an access point
    on the interface ic and begins the scan. The parameter
    reset controls if a previously built node list should
    be cleared. The actual scanning for an access point is not fully automated:
    the device driver itself controls stepping through the channels, usually by
    a periodical callback.
The ieee80211_next_scan() function is used
    to inform the ieee80211(9)
    layer that the next channel for interface ic should be
    scanned.
The ieee80211_create_ibss() function sets
    up the net80211-specific portion of an interface's softc,
    ic, for use in IBSS mode.
The ieee80211_end_scan() function is
    called by ieee80211_next_scan() when the state
    machine has performed a full cycle of scanning on all available radio
    channels. Internally, ieee80211_end_scan() will
    inspect the node cache associated with the interface
    ic for suitable access points found during scanning,
    and associate with one, should the parameters of the node match those of the
    configuration requested.
The ieee80211_alloc_node() function
    allocates an instance of struct ieee80211_node for a
    node having the MAC address macaddr, and associates it
    with the node table nt. If the allocation is
    successful, the node structure is initialised by
    ieee80211_setup_node(); otherwise,
    NULL is returned.
The ieee80211_dup_bss() function is
    similar to ieee80211_alloc_node(), but is instead
    used to create a node database entry for the BSSID
    macaddr associated with the note table
    nt. If the allocation is successful, the node
    structure is initialised by ieee80211_setup_node();
    otherwise, NULL is returned.
The ieee80211_find_node() function will
    iterate through the node table nt, searching for a
    node entry which matches macaddr. If the entry is
    found, its reference count is incremented, and a pointer to the node is
    returned; otherwise, NULL is returned.
The ieee80211_free_allnodes() function
    will iterate through the node list calling
    ieee80211_free_node() for all the nodes in table
    nt.
The ieee80211_iterate_nodes() function
    will call the user-defined callback function f for all
    nodes in the table nt. The callback is invoked with
    the with the user-supplied value arg and a pointer to
    the current node.
ieee80211 series of functions first appeared in
  NetBSD 1.5, and were later ported to
  FreeBSD 4.6.
| September 12, 2006 | NetBSD 9.4 |