nic.c File Reference

#include <sys/types.h>
#include <unistd.h>
#include <nic.h>
#include <net/if.h>
#include <net/if_arp.h>
#include <arpa/inet.h>
#include <sys/stat.h>
#include <sys/syslog.h>
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <search.h>
#include <time.h>
#include <errno.h>
#include <libdhcp.h>
#include <netlink/netlink.h>
#include <netlink/netlink-kernel.h>
#include <netlink/rtnetlink-kernel.h>
#include <netlink/msg.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
#include <netlink/addr.h>
#include <netlink/route/rtnl.h>
#include <netlink/route/link.h>
#include <netlink/route/addr.h>
#include <netlink/route/route.h>

Go to the source code of this file.

Data Structures

struct  nlh_s
struct  nic_s
struct  nic_s::nic_link
struct  nic_cbarg
struct  nic_ip_address_s
struct  nic_ip_address_s::nic_addr_s
struct  nic_addr_cbarg
struct  nic_route_s
struct  nic_route_s::nic_rt_s
struct  nic_route_s::nic_rt_s::nic_rtnh_s
struct  nic_route_cbarg

Defines

#define _GNU_SOURCE   1
#define eprintf(level, fmt, arg...)   ({if (nh && nh->eh) (nh->eh)(nh, (level), (fmt), ##arg ); })
#define IFQDISCSIZ   32

Typedefs

typedef nic_route_s RT_t

Enumerations

enum  nic_ar_e

Functions

NLH_t nic_open (NIC_Error_Handler_t eh)
void nic_close (struct nlh_s **nhp)
void nic_sys_logger (NLH_t nh, NIC_Error_Level_t el, char *fmt,...)
void nic_stderr_logger (NLH_t nh, NIC_Error_Level_t el, char *fmt,...)
NIC_Res_t nic_set_loglevel (NLH_t nh, NIC_Error_Level_t ll)
void nic_set_logger (NLH_t nh, NIC_Error_Handler_t eh)
void nic_set_va_logger (NLH_t nh, NIC_VA_Error_Handler_t va_eh, void *va_eh_arg)
NIC_t nic_by_name (NLH_t nh, char *if_name)
NIC_t nic_by_index (NLH_t nh, int16_t if_index)
void nic_foreach (NLH_t nh, NIC_handler_t handler, void *arg)
char * nic_get_name (NIC_t nic)
int16_t nic_get_index (NIC_t nic)
ip_addr_t nic_get_link_addr (NIC_t nic)
ip_addr_t nic_get_link_broadcast (NIC_t nic)
uint32_t nic_get_flags (NIC_t nic)
NIC_Res_t nic_update (NIC_t nic)
void nic_set_flags (NIC_t nic, uint32_t flags)
uint32_t nic_get_mtu (NIC_t nic)
void nic_set_mtu (NIC_t nic, uint32_t mtu)
char * nic_get_qdisc (NIC_t nic)
void nic_set_qdisc (NIC_t nic, char *qdisc)
uint32_t nic_get_txqlen (NIC_t nic)
void nic_set_txqlen (NIC_t nic, uint32_t txq)
uint32_t nic_get_link (NIC_t nic)
void nic_set_link (NIC_t nic, uint32_t link)
uint32_t nic_get_weight (NIC_t nic)
void nic_set_weight (NIC_t nic, uint32_t weight)
uint32_t nic_get_master (NIC_t nic)
void nic_set_master (NIC_t nic, uint32_t master)
uint32_t nic_get_cost (NIC_t nic)
void nic_set_cost (NIC_t nic, uint32_t cost)
uint32_t nic_get_priority (NIC_t nic)
void nic_set_priority (NIC_t nic, uint32_t priority)
uint32_t nic_get_protinfo (NIC_t nic)
void nic_set_protinfo (NIC_t nic, uint32_t protinfo)
rtnl_link_stats nic_get_stats (NIC_t nic)
rtnl_link_ifmap nic_get_ifmap (NIC_t nic)
void nic_addr_foreach (NLH_t nh, IPaddr_Handler_t handler, void *arg)
IPaddr_t nic_addr_ip (NLH_t nh, ip_addr_t *ip)
IPaddr_t nic_addr (NLH_t nh, ip_addr_t ip)
IPaddr_t nic_addr_local (NLH_t nh, ip_addr_t ip)
ip_addr_t nic_ip_addr (IPaddr_t ipa)
ip_addr_t nic_addr_get_local (IPaddr_t ipa)
void nic_addr_set_local (IPaddr_t ipa, ip_addr_t ip)
uint8_t nic_addr_get_family (IPaddr_t ipa)
uint8_t nic_addr_get_prefix (IPaddr_t ipa)
void nic_addr_set_prefix (IPaddr_t ipa, uint8_t prefix)
ip_addr_t nic_addr_get_broadcast (IPaddr_t ipa)
void nic_addr_set_broadcast (IPaddr_t ipa, ip_addr_t ip)
ip_addr_t nic_addr_get_anycast (IPaddr_t ipa)
void nic_addr_set_anycast (IPaddr_t ipa, ip_addr_t ip)
ip_addr_t nic_addr_get_multicast (IPaddr_t ipa)
void nic_addr_set_multicast (IPaddr_t ipa, ip_addr_t ip)
int8_t nic_addr_get_scope (IPaddr_t ipa)
void nic_addr_set_scope (IPaddr_t ipa, int8_t scope)
uint8_t nic_addr_get_flags (IPaddr_t ipa)
void nic_addr_set_flags (IPaddr_t ipa, uint8_t flags)
const char * nic_addr_get_label (IPaddr_t ipa)
void nic_addr_set_label (IPaddr_t ipa, const char *label)
ifa_cacheinfo nic_addr_get_cacheinfo (IPaddr_t ipa)
void nic_addr_set_cacheinfo (IPaddr_t ipa, struct ifa_cacheinfo *ca)
IPaddr_list_tnic_address_list_new (IPaddr_t ip1,...)
void nic_address_list_free (IPaddr_list_t *head)
NIC_Res_t nic_add_address (NIC_t nic, IPaddr_t ipa)
NIC_Res_t nic_remove_address (NIC_t nic, IPaddr_t ipa)
NIC_Res_t nic_add_addresses (NIC_t nic, IPaddr_list_t *head)
NIC_Res_t nic_remove_addresses (NIC_t nic, IPaddr_list_t *head)
void nic_addr_free (void *ipa)
void nic_route_foreach (NLH_t nh, IProute_handler_t handler, void *arg)
int32_t nic_route_get_table (IProute_t rt)
void nic_route_set_table (IProute_t rt, uint8_t table)
char * nic_route_get_table_name (int32_t table, char *buf, int len)
int32_t nic_route_get_table_number (char *table)
uint8_t nic_route_get_family (IProute_t rt)
uint8_t nic_route_get_scope (IProute_t rt)
void nic_route_set_scope (IProute_t rt, uint8_t scope)
uint32_t nic_route_get_flags (IProute_t rt)
void nic_route_set_flags (IProute_t rt, uint32_t flags)
uint8_t nic_route_get_dst_len (IProute_t rt)
void nic_route_set_dst_len (IProute_t rt, uint8_t dst_len)
uint8_t nic_route_get_src_len (IProute_t rt)
void nic_route_set_src_len (IProute_t rt, uint8_t src_len)
uint8_t nic_route_get_type (IProute_t rt)
void nic_route_set_type (IProute_t rt, uint8_t type)
uint8_t nic_route_get_protocol (IProute_t rt)
void nic_route_set_protocol (IProute_t rt, uint8_t protocol)
uint8_t nic_route_get_tos (IProute_t rt)
void nic_route_set_tos (IProute_t rt, uint8_t tos)
ip_addr_t nic_route_get_dst (IProute_t rt)
void nic_route_set_dst (IProute_t rt, ip_addr_t ip)
ip_addr_t nic_route_get_gateway (IProute_t rt)
void nic_route_set_gateway (IProute_t rt, ip_addr_t ip)
ip_addr_t nic_route_get_src (IProute_t rt)
void nic_route_set_src (IProute_t rt, ip_addr_t ip)
ip_addr_t nic_route_get_prefsrc (IProute_t rt)
void nic_route_set_prefsrc (IProute_t rt, ip_addr_t ip)
int16_t nic_route_get_oif (IProute_t rt)
void nic_route_set_oif (IProute_t rt, uint16_t oif)
NIC_if_name_t nic_route_get_iif (IProute_t rt)
void nic_route_set_iif (IProute_t rt, char *iif)
uint32_t nic_route_get_priority (IProute_t rt)
void nic_route_set_priority (IProute_t rt, uint32_t priority)
uint32_t nic_route_get_protoinfo (IProute_t rt)
void nic_route_set_protoinfo (IProute_t rt, uint32_t protoinfo)
uint32_t nic_route_get_session (IProute_t rt)
void nic_route_set_session (IProute_t rt, uint32_t session)
uint32_t nic_route_get_flow (IProute_t rt)
void nic_route_set_flow (IProute_t rt, uint32_t flow)
uint32_t nic_route_get_mp_algo (IProute_t rt)
void nic_route_set_mp_algo (IProute_t rt, uint32_t mp_algo)
IProute_t nic_route_new (NLH_t nh, int16_t oif, ip_addr_t *dst, uint8_t dst_len, ip_addr_t *gw, int8_t type, int8_t protocol, int8_t scope, int32_t priority, int32_t table, char *iif, ip_addr_t *src, uint8_t src_len)
NIC_Res_t nic_add_route (IProute_t rt)
NIC_Res_t nic_update_route (IProute_t rt)
NIC_Res_t nic_remove_route (IProute_t rt)
IProute_list_tnic_route_list_new (IProute_t rt1,...)
void nic_route_list_free (IProute_list_t *head)
NIC_Res_t nic_add_routes (IProute_list_t *head)
NIC_Res_t nic_remove_routes (IProute_list_t *head)
NIC_Res_t nic_update_routes (IProute_list_t *head)
void nic_route_free (void *rtp)
NIC_Res_t nic_set_hostname (NLH_t nh, char *hostname)
NIC_Res_t nic_configure (NLH_t nh, NIC_t nic, IPaddr_list_t *addresses, IProute_list_t *routes, IPaddr_list_t *dns_servers, char *search_list, char *host_name)


Detailed Description

Network Interface Configurator (NIC) for libdhcp.

Provides facilities for configuring network interfaces, addresses, and routes.

Definition in file nic.c.


Generated on Fri Oct 13 18:20:33 2006 for libdhcp by  doxygen 1.4.7