PPPoE devices (DSL)
[Device handling]


Data Structures

struct  PPPoEPacket
struct  PPPoETag
struct  PPPoEConnection
struct  PacketCriteria

Defines

#define ETH_PPPOE_DISCOVERY   0x8863
#define ETH_PPPOE_SESSION   0x8864
#define CODE_PADI   0x09
#define CODE_PADO   0x07
#define CODE_PADR   0x19
#define CODE_PADS   0x65
#define CODE_PADT   0xA7
#define TAG_END_OF_LIST   0x0000
#define TAG_SERVICE_NAME   0x0101
#define TAG_AC_NAME   0x0102
#define TAG_HOST_UNIQ   0x0103
#define TAG_AC_COOKIE   0x0104
#define TAG_VENDOR_SPECIFIC   0x0105
#define TAG_RELAY_SESSION_ID   0x0110
#define TAG_SERVICE_NAME_ERROR   0x0201
#define TAG_AC_SYSTEM_ERROR   0x0202
#define TAG_GENERIC_ERROR   0x0203
#define MAX_ATTEMPTS   2
#define PADO_TIMEOUT   3
#define PPPOE_OVERHEAD   6
#define HDR_SIZE   (sizeof (struct ethhdr) + PPPOE_OVERHEAD)
#define MAX_PPPOE_PAYLOAD   (ETH_DATA_LEN - PPPOE_OVERHEAD)
#define TAG_HDR_SIZE   4
#define NOT_UNICAST(e)   ((e[0] & 0x01) != 0)

Typedefs

typedef void parse_func (uint16_t type, uint16_t len, unsigned char *data, void *extra)

Functions

static int check_room (PPPoEConnection *conn, unsigned char *cursor, unsigned char *start, uint16_t len)
static int parse_packet (PPPoEConnection *conn, PPPoEPacket *packet, parse_func *func, void *extra)
static int open_interfaces (int n, PPPoEConnection *conns)
static void close_intefaces (int n, PPPoEConnection *conns)
static int send_packet (int fd, PPPoEPacket *pkt, size_t size)
static int receive_packet (int fd, PPPoEPacket *pkt, size_t *size)
static void parse_hostuniq (uint16_t type, uint16_t len, unsigned char *data, void *extra)
static int packet_for_me (PPPoEConnection *conn, PPPoEPacket *packet)
static void parse_pado_tags (uint16_t type, uint16_t len, unsigned char *data, void *extra)
static int send_padi (int n, PPPoEConnection *conns)
static int wait_for_pado (int n, PPPoEConnection *conns)
static void discovery (int n, PPPoEConnection *conns)
void hd_scan_pppoe (hd_data_t *hd_data2)

Detailed Description

PPPoE devices scan functions

Define Documentation

#define CODE_PADI   0x09

#define CODE_PADO   0x07

#define CODE_PADR   0x19

#define CODE_PADS   0x65

#define CODE_PADT   0xA7

#define ETH_PPPOE_DISCOVERY   0x8863

#define ETH_PPPOE_SESSION   0x8864

#define HDR_SIZE   (sizeof (struct ethhdr) + PPPOE_OVERHEAD)

#define MAX_ATTEMPTS   2

#define MAX_PPPOE_PAYLOAD   (ETH_DATA_LEN - PPPOE_OVERHEAD)

#define NOT_UNICAST (  )     ((e[0] & 0x01) != 0)

#define PADO_TIMEOUT   3

#define PPPOE_OVERHEAD   6

#define TAG_AC_COOKIE   0x0104

#define TAG_AC_NAME   0x0102

#define TAG_AC_SYSTEM_ERROR   0x0202

#define TAG_END_OF_LIST   0x0000

#define TAG_GENERIC_ERROR   0x0203

#define TAG_HDR_SIZE   4

#define TAG_HOST_UNIQ   0x0103

#define TAG_RELAY_SESSION_ID   0x0110

#define TAG_SERVICE_NAME   0x0101

#define TAG_SERVICE_NAME_ERROR   0x0201

#define TAG_VENDOR_SPECIFIC   0x0105


Typedef Documentation

typedef void parse_func(uint16_t type, uint16_t len, unsigned char *data, void *extra)


Function Documentation

static int check_room ( PPPoEConnection conn,
unsigned char *  cursor,
unsigned char *  start,
uint16_t  len 
) [static]

static void close_intefaces ( int  n,
PPPoEConnection conns 
) [static]

static void discovery ( int  n,
PPPoEConnection conns 
) [static]

void hd_scan_pppoe ( hd_data_t hd_data2  ) 

static int open_interfaces ( int  n,
PPPoEConnection conns 
) [static]

static int packet_for_me ( PPPoEConnection conn,
PPPoEPacket packet 
) [static]

static void parse_hostuniq ( uint16_t  type,
uint16_t  len,
unsigned char *  data,
void *  extra 
) [static]

static int parse_packet ( PPPoEConnection conn,
PPPoEPacket packet,
parse_func func,
void *  extra 
) [static]

static void parse_pado_tags ( uint16_t  type,
uint16_t  len,
unsigned char *  data,
void *  extra 
) [static]

static int receive_packet ( int  fd,
PPPoEPacket pkt,
size_t *  size 
) [static]

static int send_packet ( int  fd,
PPPoEPacket pkt,
size_t  size 
) [static]

static int send_padi ( int  n,
PPPoEConnection conns 
) [static]

static int wait_for_pado ( int  n,
PPPoEConnection conns 
) [static]