vif_access.c File Reference

Functions for handling virtual interface access. More...

#include <sys/ioctl.h>
#include <sys/stat.h>
#include <linux/if_tun.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "iw_compat.h"
#include "vif.h"

Go to the source code of this file.

Functions

int vif_config_load (void)
int vif_config_create (void)
int vif_config_list (int, char[MAX_NUM_VIF][IFNAMSIZ+1])
vif_infovif_config_vif_info (int, const char *)
int vif_config_add (int, const char *)
int vif_config_delete (int, const char *)
void vif_config_print (int)
int vif_notify_ioctl (int, const char *)
int ignore_debug (const char *text,...)
int tun_create (const char *dev_name)
int tun_remove (const char *dev_name)
wireless_infoget_wireless_info (const char *dev_name)
int vif_siocsifhwaddr (const char *dev_name)
int vif_siocgiwname (struct iwreq *request)
int vif_siocgiwnid (struct iwreq *request)
int vif_siocsiwfreq (struct iwreq *request)
int vif_siocgiwfreq (struct iwreq *request)
int vif_siocsiwmode (struct iwreq *request)
int vif_siocgiwmode (struct iwreq *request)
int vif_siocsiwsens (struct iwreq *request)
int vif_siocgiwsens (struct iwreq *request)
int vif_siocgiwrange (struct iwreq *request)
int vif_siocgiwpriv (struct iwreq *request)
int vif_siocgiwap (struct iwreq *request)
int vif_siocsiwessid (struct iwreq *request)
int vif_siocgiwessid (struct iwreq *request)
int vif_siocgiwnickn (struct iwreq *request)
int vif_siocsiwrate (struct iwreq *request)
int vif_siocgiwrate (struct iwreq *request)
int vif_siocsiwrts (struct iwreq *request)
int vif_siocgiwrts (struct iwreq *request)
int vif_siocsiwfrag (struct iwreq *request)
int vif_siocgiwfrag (struct iwreq *request)
int vif_siocsiwtxpow (struct iwreq *request)
int vif_siocgiwtxpow (struct iwreq *request)
int vif_siocsiwretry (struct iwreq *request)
int vif_siocgiwretry (struct iwreq *request)
int vif_siocsiwencode (struct iwreq *request)
int vif_siocgiwencode (struct iwreq *request)
int vif_siocgiwpower (struct iwreq *request)
void vif_set_debug_function (int(*debug)(const char *format,...))
void vif_set_error_function (int(*error)(const char *format,...))
ssize_t vif_init ()
int vif_create (const char *vif_name)
int vif_delete (const char *dev_name)
int vif_ioctl (int request, struct iwreq *pwrq)
int vif_get_names (char vif_names[MAX_NUM_VIF][IFNAMSIZ+1])
void vif_print (void)
int vif_get_mac (unsigned char *mac, const char *dev_name)
double vif_get_frequency (const char *dev_name)
uint16_t vif_get_channel (const char *dev_name)
int16_t vif_get_sensitivity (const char *dev_name)
int16_t vif_get_rts (const char *dev_name)
int16_t vif_get_frag (const char *dev_name)
int16_t vif_get_txpower (const char *dev_name)
int16_t vif_get_retry (const char *dev_name)

Variables

int vif_list_id = -1
int(* vif_debug )(const char *format,...) = &ignore_debug
int(* vif_error )(const char *format,...) = &printf


Detailed Description

Functions for handling virtual interface access.

Definition in file vif_access.c.


Function Documentation

wireless_info* get_wireless_info ( const char *  dev_name  ) 

Return wireless_info of virtual interface

Definition at line 172 of file vif_access.c.

int ignore_debug ( const char *  text,
  ... 
)

Define empty function with printf() signature

Definition at line 57 of file vif_access.c.

int tun_create ( const char *  dev_name  ) 

Creates new TUN interfaces. Implementation adapted from tunctl.c (uml_utilities); Copyright: 2002, Jeff Dike

Definition at line 79 of file vif_access.c.

int tun_remove ( const char *  dev_name  ) 

Remove TUN interface

Definition at line 138 of file vif_access.c.

int vif_config_add ( int  id,
const char *  dev_name 
)

Add a new default virtual interface configuration to the list

Parameters:
id List ID
dev_name Interface device name
Returns:
0 if success, -1 else
See also:
vif_config_init_wlan

Definition at line 429 of file vif_config.c.

int vif_config_create ( void   ) 

Create a new empty virtual interface list

Returns:
List ID (-1 on error)

Definition at line 266 of file vif_config.c.

int vif_config_delete ( int  id,
const char *  dev_name 
)

Delete a specific vif configuration from the list

Parameters:
id List ID
dev_name Interface device name

Definition at line 339 of file vif_config.c.

int vif_config_list ( int  id,
char  vif_names[MAX_NUM_VIF][IFNAMSIZ+1] 
)

List the configured virtual interfaces

Parameters:
id List ID
vif_names Char-array to store the virtual interface names
Returns:
Number of configured virtual interfaces

Definition at line 382 of file vif_config.c.

int vif_config_load ( void   ) 

Load the shared memory virtual interface list

Returns:
List ID (-1 on error)

Definition at line 291 of file vif_config.c.

void vif_config_print ( int  id  ) 

Print vif_list to the debug output

Parameters:
id List ID

Definition at line 457 of file vif_config.c.

vif_info * vif_config_vif_info ( int  id,
const char *  dev_name 
)

Return a virtual interface configuration from the list

Parameters:
id List ID
dev_name Interface device name
Returns:
Pointer to vif_info structure of given device

Definition at line 408 of file vif_config.c.

int vif_create ( const char *   ) 

Create virtual interface (real TUN device and wireless information).

Definition at line 801 of file vif_access.c.

int vif_delete ( const char *  dev_name  ) 

Delete virtual interface (remove TUN interface and shared memory interface configuration

Definition at line 841 of file vif_access.c.

uint16_t vif_get_channel ( const char *   ) 

Get wireless channel number of a virtual interface

Definition at line 941 of file vif_access.c.

int16_t vif_get_frag ( const char *   ) 

Get fragmentation threshold of a virtual interface in Bytes

Definition at line 992 of file vif_access.c.

double vif_get_frequency ( const char *   ) 

Get wireless frequency of a virtual interface in Hz

Definition at line 930 of file vif_access.c.

int vif_get_mac ( unsigned char *  ,
const char *   
)

Return the Ethernet address (MAC) of a virtual interface

Definition at line 918 of file vif_access.c.

int vif_get_names ( char  vif_names[MAX_NUM_VIF][IFNAMSIZ+1]  ) 

Get names and number of virtual interfaces.

Definition at line 894 of file vif_access.c.

int16_t vif_get_retry ( const char *   ) 

Get number of retry attempts of a virtual interface

Definition at line 1019 of file vif_access.c.

int16_t vif_get_rts ( const char *   ) 

Get RTS threshold of a virtual interface in Bytes

Definition at line 981 of file vif_access.c.

int16_t vif_get_sensitivity ( const char *   ) 

Get wireless sensitivity of a virtual interface in dB

Definition at line 967 of file vif_access.c.

int16_t vif_get_txpower ( const char *   ) 

Get radio txpower of a virtual interface in mW

Definition at line 1002 of file vif_access.c.

ssize_t vif_init (  ) 

Load virtual interface configuration and return number of configured interfaces

Definition at line 783 of file vif_access.c.

int vif_ioctl ( int  request,
struct iwreq *  pwrq 
)

Perform ioctl on virtual interface

Parameters:
request Type of ioctl() call (see wireless.h)
pwrq Wireless ioctl() request
Returns:
0 if successful, IWERR_* if error
See also:
iw_compat.h

Definition at line 853 of file vif_access.c.

int vif_notify_ioctl ( int  ioctl_type,
const char *  dev_name 
)

Send notification message for executed ioctl()

Parameters:
ioctl_type Ioctl() type (see wireless.h)
dev_name Virtual interface device name
Returns:
0 on success, -1 else

Definition at line 54 of file vif_notify.c.

void vif_print ( void   ) 

Print virtual interface configuration list to debug output

Definition at line 909 of file vif_access.c.

void vif_set_debug_function ( int(*)(const char *format,...)  debug  ) 

Set debug output for custom redirection (default: stdout)

Definition at line 771 of file vif_access.c.

void vif_set_error_function ( int(*)(const char *format,...)  error  ) 

Set error output for custom redirection (default: stdout)

Definition at line 777 of file vif_access.c.

int vif_siocgiwap ( struct iwreq *  request  ) 

Definition at line 418 of file vif_access.c.

int vif_siocgiwencode ( struct iwreq *  request  ) 

Definition at line 725 of file vif_access.c.

int vif_siocgiwessid ( struct iwreq *  request  ) 

Definition at line 452 of file vif_access.c.

int vif_siocgiwfrag ( struct iwreq *  request  ) 

Definition at line 592 of file vif_access.c.

int vif_siocgiwfreq ( struct iwreq *  request  ) 

Definition at line 287 of file vif_access.c.

int vif_siocgiwmode ( struct iwreq *  request  ) 

Definition at line 321 of file vif_access.c.

int vif_siocgiwname ( struct iwreq *  request  ) 

Definition at line 214 of file vif_access.c.

int vif_siocgiwnickn ( struct iwreq *  request  ) 

Definition at line 470 of file vif_access.c.

int vif_siocgiwnid ( struct iwreq *  request  ) 

Definition at line 228 of file vif_access.c.

int vif_siocgiwpower ( struct iwreq *  request  ) 

Definition at line 751 of file vif_access.c.

int vif_siocgiwpriv ( struct iwreq *  request  ) 

Definition at line 392 of file vif_access.c.

int vif_siocgiwrange ( struct iwreq *  request  ) 

Definition at line 375 of file vif_access.c.

int vif_siocgiwrate ( struct iwreq *  request  ) 

Definition at line 502 of file vif_access.c.

int vif_siocgiwretry ( struct iwreq *  request  ) 

Definition at line 683 of file vif_access.c.

int vif_siocgiwrts ( struct iwreq *  request  ) 

Definition at line 540 of file vif_access.c.

int vif_siocgiwsens ( struct iwreq *  request  ) 

Definition at line 358 of file vif_access.c.

int vif_siocgiwtxpow ( struct iwreq *  request  ) 

Definition at line 643 of file vif_access.c.

int vif_siocsifhwaddr ( const char *  dev_name  ) 

Definition at line 185 of file vif_access.c.

int vif_siocsiwencode ( struct iwreq *  request  ) 

Definition at line 698 of file vif_access.c.

int vif_siocsiwessid ( struct iwreq *  request  ) 

Definition at line 434 of file vif_access.c.

int vif_siocsiwfrag ( struct iwreq *  request  ) 

Definition at line 559 of file vif_access.c.

int vif_siocsiwfreq ( struct iwreq *  request  ) 

Called for SIOCSIWFREQ (argument can be channel or frequency)

Definition at line 249 of file vif_access.c.

int vif_siocsiwmode ( struct iwreq *  request  ) 

Definition at line 306 of file vif_access.c.

int vif_siocsiwrate ( struct iwreq *  request  ) 

Definition at line 486 of file vif_access.c.

int vif_siocsiwretry ( struct iwreq *  request  ) 

Definition at line 662 of file vif_access.c.

int vif_siocsiwrts ( struct iwreq *  request  ) 

Definition at line 517 of file vif_access.c.

int vif_siocsiwsens ( struct iwreq *  request  ) 

Definition at line 340 of file vif_access.c.

int vif_siocsiwtxpow ( struct iwreq *  request  ) 

Definition at line 611 of file vif_access.c.


Variable Documentation

int(* vif_debug)(const char *format,...) = &ignore_debug

Debug output function (ignored by default) can be changed with vif_set_debug_function()

int(* vif_error)(const char *format,...) = &printf

Error output function (default to stdout) can be changed with vif_set_error_function()

int vif_list_id = -1

Virtual interface configuration list identifier

Definition at line 50 of file vif_access.c.


Generated on Mon Feb 8 14:55:05 2010 for Virtual Interface Tools by  doxygen 1.5.8