l2_packet_freebsd.c File Reference

#include "includes.h"
#include <pcap.h>
#include <sys/ioctl.h>
#include <sys/sysctl.h>
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
#include <netinet/in.h>
#include "common.h"
#include "eloop.h"
#include "l2_packet.h"
Include dependency graph for l2_packet_freebsd.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  l2_packet_data

Functions

static int eth_get (const char *device, u8 ea[ETH_ALEN])
void l2_packet_deinit (struct l2_packet_data *l2)
int l2_packet_get_ip_addr (struct l2_packet_data *l2, char *buf, size_t len)
int l2_packet_get_own_addr (struct l2_packet_data *l2, u8 *addr)
struct l2_packet_datal2_packet_init (const char *ifname, const u8 *own_addr, unsigned short protocol, void(*rx_callback)(void *ctx, const u8 *src_addr, const u8 *buf, size_t len), void *rx_callback_ctx, int l2_hdr)
static int l2_packet_init_libpcap (struct l2_packet_data *l2, unsigned short protocol)
void l2_packet_notify_auth_start (struct l2_packet_data *l2)
static void l2_packet_receive (int sock, void *eloop_ctx, void *sock_ctx)
int l2_packet_send (struct l2_packet_data *l2, const u8 *dst_addr, u16 proto, const u8 *buf, size_t len)

Variables

static const u8 pae_group_addr [ETH_ALEN]

Function Documentation

static int eth_get ( const char *  device,
u8  ea[ETH_ALEN] 
) [static]

Definition at line 164 of file l2_packet_freebsd.c.

void l2_packet_deinit ( struct l2_packet_data l2  ) 

l2_packet_deinit - Deinitialize l2_packet interface : Pointer to internal l2_packet data from l2_packet_init()

Definition at line 234 of file l2_packet_freebsd.c.

int l2_packet_get_ip_addr ( struct l2_packet_data l2,
char *  buf,
size_t  len 
)

l2_packet_get_ip_addr - Get the current IP address from the interface : Pointer to internal l2_packet data from l2_packet_init() : Buffer for the IP address in text format : Maximum buffer length Returns: 0 on success, -1 on failure

This function can be used to get the current IP address from the interface bound to the l2_packet. This is mainly for status information and the IP address will be stored as an ASCII string. This function is not essential for wpa_supplicant operation, so full implementation is not required. l2_packet implementation will need to define the function, but it can return -1 if the IP address information is not available.

Definition at line 247 of file l2_packet_freebsd.c.

int l2_packet_get_own_addr ( struct l2_packet_data l2,
u8 addr 
)

l2_packet_get_own_addr - Get own layer 2 address : Pointer to internal l2_packet data from l2_packet_init() : Buffer for the own address (6 bytes) Returns: 0 on success, -1 on failure

Definition at line 50 of file l2_packet_freebsd.c.

struct l2_packet_data* l2_packet_init ( const char *  ifname,
const u8 own_addr,
unsigned short  protocol,
void(*)(void *ctx, const u8 *src_addr, const u8 *buf, size_t len)  rx_callback,
void *  rx_callback_ctx,
int  l2_hdr 
) [read]

Definition at line 202 of file l2_packet_freebsd.c.

static int l2_packet_init_libpcap ( struct l2_packet_data l2,
unsigned short  protocol 
) [static]

Definition at line 104 of file l2_packet_freebsd.c.

void l2_packet_notify_auth_start ( struct l2_packet_data l2  ) 

l2_packet_notify_auth_start - Notify l2_packet about start of authentication : Pointer to internal l2_packet data from l2_packet_init()

This function is called when authentication is expected to start, e.g., when association has been completed, in order to prepare l2_packet implementation for EAPOL frames. This function is used mainly if the l2_packet code needs to do polling in which case it can increasing polling frequency. This can also be an empty function if the l2_packet implementation does not benefit from knowing about the starting authentication.

Definition at line 283 of file l2_packet_freebsd.c.

static void l2_packet_receive ( int  sock,
void *  eloop_ctx,
void *  sock_ctx 
) [static]

Definition at line 77 of file l2_packet_freebsd.c.

int l2_packet_send ( struct l2_packet_data l2,
const u8 dst_addr,
u16  proto,
const u8 buf,
size_t  len 
)

l2_packet_send - Send a packet : Pointer to internal l2_packet data from l2_packet_init() : Destination address for the packet (only used if l2_hdr == 0) : Protocol/ethertype for the packet in host byte order (only used if l2_hdr == 0) : Packet contents to be sent; including layer 2 header if l2_hdr was set to 1 in l2_packet_init() call. Otherwise, only the payload of the packet is included. : Length of the buffer (including l2 header only if l2_hdr == 1) Returns: >=0 on success, <0 on failure

Definition at line 57 of file l2_packet_freebsd.c.


Variable Documentation

const u8 pae_group_addr[ETH_ALEN] [static]
Initial value:
{ 0x01, 0x80, 0xc2, 0x00, 0x00, 0x03 }

Definition at line 35 of file l2_packet_freebsd.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines


wpa_supplicant_node
Author(s): Package maintained by Blaise Gassend
autogenerated on Fri Jan 11 10:02:16 2013