Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
IF_UTIL(3)	       FreeBSD Library Functions Manual		    IF_UTIL(3)

NAME
     if_util --	system networking interface utility routines

LIBRARY
     PDEL Library (libpdel, -lpdel)

SYNOPSIS
     #include <sys/types.h>
     #include <netinet/in.h>
     #include <pdel/net/if_util.h>

     int
     if_get_list(char ***listp,	const char *mtype);

     int
     if_get_type(const char *ifname);

     int
     if_get_flags(const	char *ifname);

     int
     if_set_flags(const	char *ifname, int flags);

     int
     if_get_mtu(const char *ifname);

     int
     if_set_mtu(const char *ifname, u_int mtu);

     int
     if_get_link_addr(const char *ifname, struct sockaddr_dl **sdlp,
	 const char *mtype);

     int
     if_get_ip_addrs(const char	*ifname, struct	in_addr	**iplistp,
	 struct	in_addr	**nmlistp, const char *mtype);

     int
     if_get_ip_addr(const char *ifname,	struct in_addr *ipp,
	 struct	in_addr	*nmp);

     int
     if_add_ip_addr(const char *iface, struct in_addr ip, struct in_addr mask,
	 struct	in_addr	dest);

     int
     if_del_ip_addr(const char *iface, struct in_addr ip, struct in_addr mask,
	 struct	in_addr	dest);

     int
     if_get_arp(struct in_addr ip, u_char *ether);

     int
     if_set_arp(struct in_addr ip, const u_char	*ether,	int temp,
	 int publish);

     int
     if_flush_arp(void);

DESCRIPTION
     These functions are useful	for accessing and configuring system network-
     ing interfaces, especially	for IP networking.

     if_get_list() constructs a	list of	the names of all interfaces present in
     the system.  Zero or more strings are allocated and pointed to by the el-
     ements of a newly allocated array of pointers.  The length	of the array
     is	returned by if_get_list() and a	pointer	to the array is	stored in
     *listp.  Each string, as well as the array	itself,	is allocated with
     typed_mem(3) type mtype.  The caller is responsible for eventually	free-
     ing the individual	strings	as well	as the array itself.

     if_get_type() returns the type of the interface named ifname.  The	inter-
     face types	are defined in the include file	<net/if_types.h>.

     if_get_flags() gets the flags associated with the interface named ifname.
     The interface flags are defined in	the include file <net/if.h>.

     if_set_flags() attempts to	set the	flags associated with the interface
     named ifname.

     if_get_mtu() returns the current MTU associated with the interface	named
     ifname.

     if_set_mtu() attempts to set the MTU associated with the interface	named
     ifname.

     if_get_link_addr()	retrieves the link layer address associated with the
     interface named ifname, allocates a buffer	with typed_mem(3) type mtype
     to	hold it, and stores a pointer to the buffer in *sdlp.  The caller is
     responsible for eventually	freeing	the buffer.  The struct	sockaddr_dl
     type is defined in	the include file <net/if_dl.h>.

     if_get_ip_addrs() retrieves the list of all IP addresses (with netmasks)
     configured	on the interface named ifname.	The IP addresses and netmasks
     are stored	in two arrays allocated	with typed_mem(3) type mtype, and
     pointers to these arrays are stored in *iplistp and *nmlistp, respec-
     tively.  The caller is responsible	for eventually freeing the arrays.
     The length	of the arrays is returned.

     if_get_ip_addr() retrieves	the first IP address and netmask configured on
     the interface named ifname	and stores them	in *ipp	and *nmp, respec-
     tively.

     if_add_ip_addr() configures a new IP address on the interface named
     ifname, using the netmask mask and	destination dest.  Existing IP ad-
     dresses configured	on the interface are not removed.  dest	should be
     0.0.0.0 for non-point-to-point interfaces.

     if_del_ip_addr() removes a	configured IP address, netmask,	and destina-
     tion from the interface named ifname.  dest should	be 0.0.0.0 for non-
     point-to-point interfaces.

     if_get_arp() retrieves the	ARP table entry	associated with	the IP address
     ip	and stores it in the buffer pointed to by ether, which must be at
     least six bytes long.

     if_set_arp() sets an ARP table entry for the IP address ip	to resolve to
     the Ethernet address pointed to by	ether.	The temp flag indicates	a tem-
     porary entry.  The	publish	flag indicates that the	local machine should
     proxy-ARP for this	IP address.  If	ether is NULL, any matching ARP	table
     entry is cleared.	The

     if_flush_arp() clears the ARP table.

RETURN VALUES
     All of the	above functions	return -1 to indicate an error,	with errno set
     appropriately.

SEE ALSO
     libpdel(3), typed_mem(3), route_msg(3), uroute(3),	route(4)

HISTORY
     The PDEL library was developed at Packet Design, LLC.
     http://www.packetdesign.com/

AUTHORS
     Archie Cobbs <archie@freebsd.org>

BUGS
     There is no way to	retrieve destination addresses configured on a point-
     to-point interface.

     These routines should be less IPv4-centric.

FreeBSD	13.0			April 22, 2002			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | HISTORY | AUTHORS | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=if_util&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help