Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Related Pages

ip-cooked.c File Reference

#include "config.h"
#include <netinet/in.h>
#include <unistd.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "dnet.h"
#include "queue.h"

Go to the source code of this file.

Functions

static int _add_ip_intf (const struct intf_entry *entry, void *arg)
ip_tip_open (void)
static struct ip_intf_lookup_ip_intf (ip_t *ip, ip_addr_t dst)
static void _request_arp (struct ip_intf *ipi, struct addr *dst)
ssize_t ip_send (ip_t *ip, const void *buf, size_t len)
ip_tip_close (ip_t *ip)


Function Documentation

static int _add_ip_intf const struct intf_entry entry,
void *  arg
[static]
 

Definition at line 43 of file ip-cooked.c.

References ADDR_TYPE_ETH, ADDR_TYPE_IP, ETH_LEN_MIN, INTF_FLAG_UP, INTF_TYPE_ETH, LIST_INSERT_HEAD, memcpy, NULL, and strlcpy.

Referenced by ip_open().

static struct ip_intf* _lookup_ip_intf ip_t ip,
ip_addr_t  dst
[static]
 

Definition at line 96 of file ip-cooked.c.

References eth_open(), LIST_FIRST, LIST_FOREACH, LIST_INSERT_HEAD, LIST_REMOVE, and NULL.

Referenced by ip_send().

static void _request_arp struct ip_intf ipi,
struct addr dst
[static]
 

Definition at line 127 of file ip-cooked.c.

References ARP_ETHIP_LEN, ARP_HDR_LEN, ARP_OP_REQUEST, arp_pack_hdr_ethip, ETH_ADDR_BROADCAST, ETH_HDR_LEN, eth_pack_hdr, eth_send(), and ETH_TYPE_ARP.

Referenced by ip_send().

ip_t* ip_close ip_t ip  ) 
 

Definition at line 223 of file ip-cooked.c.

References arp_close(), eth_close(), intf_close(), LIST_END, LIST_FIRST, LIST_NEXT, NULL, and route_close().

ip_t* ip_open void   ) 
 

Definition at line 68 of file ip-cooked.c.

References _add_ip_intf(), arp_open(), intf_loop(), intf_open(), ip_close(), LIST_INIT, memset, NULL, and route_open().

ssize_t ip_send ip_t ip,
const void *  buf,
size_t  len
 

Definition at line 141 of file ip-cooked.c.

References _lookup_ip_intf(), _request_arp(), addr::addr_bits, addr::addr_type, ADDR_TYPE_IP, ip_handle::arp, arp_get(), arp_entry::arp_ha, arp_entry::arp_pa, errno, ip_intf::eth, ETH_ADDR_LEN, ETH_HDR_LEN, ETH_LEN_MAX, eth_pack_hdr, eth_send(), ETH_TYPE_IP, ip_intf::ha, IP_ADDR_BITS, ip_checksum(), ip_hdr::ip_dst, ip_hdr::ip_hl, ip_hdr::ip_len, IP_MF, ip_hdr::ip_off, memcpy, memset, ip_intf::mtu, NULL, ip_intf::pa, ip_handle::route, route_entry::route_dst, route_get(), and route_entry::route_gw.


Generated on Sun May 14 14:51:22 2006 by  doxygen 1.4.2