*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: ip | Section: 4 | Source: UNIX v10 | File: ip.4
IP(4) Kernel Interfaces Manual IP(4) NAME ip, ip_ld - DARPA internet protocol SYNOPSIS #include <sys/inio.h> #include <sys/inet/in.h> #include <sys/inet/ip_var.h> DESCRIPTION The ip_ld line discipline and the files together implement the DARPA IP datagram protocol. They are used by the programs described in ipcon- fig(8) and route(8). Each Ethernet device, Datakit channel, or other stream that is to send and receive IP packets must be registered as an `IP interface' by push- ing ip_ld and setting local and remote addresses with ioctl calls. Thereafter, data received from the network are assumed to be IP pack- ets, and are intercepted by the line discipline. Packets destined for the local address of an active IP interface are routed for reading on one of the ip device files. Other packets are routed to the IP inter- face with a matching remote address and retransmitted. Data written on ip devices are taken to be IP packets, are handed to the IP interface with a matching address, and are sent. Packets des- tined for unreachable places are quietly dropped. A packet consists of a single stream record, followed by a delimiter: at most one packet is returned by a read call; an entire packet must be presented in a single write. A packet includes the IP header. Numbers in the header are in host byte order. Different ip devices handle different protocols atop IP. The minor de- vice is the protocol number in the IP header; e.g. 6 for TCP or 17 for UDP. While an ip device is open, it may not be opened again. IP pack- ets are often processed by pushing a line discipline such as tcp_ld on an ip device, rather than by explicit read and write calls; see tcp(4). The following ioctl(2) calls, defined in <sys/inio.h>, apply to an IP interface. IPIOLOCAL and either IPIOHOST or IPIONET must be called on each interface before packets will be routed correctly. Type in_addr, defined in <sys/inet/in.h>, is a 32-bit integer representing an IP ad- dress in host byte order. IPIOLOCAL The third argument points to an in_addr: the local IP ad- dress for this interface. IPIOHOST The third argument points to an in_addr: the remote IP ad- dress of the single host reachable through this interface. IPIONET The third argument points to an in_addr: the remote IP ad- dress of the network of many hosts reachable through this interface. IP addresses are matched to the network address by applying an internal bit-mask: any IP address for which (address&mask)==net-address is part of the network. The default mask depends on the IP address class; see the IP protocol standard for details. IPIOMASK The third argument points to an in_addr containing a new network mask for this interface. IPIOMTU The third argument points to an integer number of bytes. IP packets larger than this size (1500 by default) will be split into smaller ones before being sent through this in- terface. IPIOARP The network device for this interface is an Ethernet. Dis- card the Ethernet header from each incoming packet. When sending a packet, prefix an Ethernet header containing pro- tocol type 0x8 and a destination address obtained by look- ing up the IP destination address in a table. If the IP address is not in the table, discard the packet, and make an in_addr containing the offending address available for reading on this file descriptor (the one on which ip_ld was pushed). IPIORESOLVE The third argument points to a structure: struct { in_addr inaddr; unsigned char enaddr[6]; }; Add an entry to the table consulted after IPIOARP, mapping IP address inaddr to Ethernet address enaddr. The following ioctl calls, define in <sys/inio.h>, apply to the entire IP subsystem; they may be used on any file with ip_ld pushed. IPIOROUTE The third argument points to a structure: struct route { in_addr dst; in_addr gate; }; Arrange that henceforth, any IP packet destined for address dst will be routed as if destined for gate. IPIOGETIFS The third argument points to a union as follows. The structure is defined in <sys/inet/ip_var.h>. union { int index; struct ipif { struct queue *queue; int flags; int mtu; in_addr thishost; in_addr that; in_addr mask; in_addr broadcast; int ipackets, ierrors; int opackets, oerrors; int arp; int dev; } ipif; }; Before the call, index should contain an integer naming an entry in the system's table of active interfaces. Inter- faces are numbered in a continuous sequence starting at 0. Out-of-range numbers return an error. After the call, ipif is filled in with various numbers about that interface. FILES /dev/ip* SEE ALSO ioctl(2), internet(3), ipconfig(8), route(8) DARPA standards RFC 791, RFC 1122 BUGS The ARP mechanism should be generalized to deal with networks other than Ethernet. There is only one ARP table for the entire system; there should be one for each interface. The structures used by IPIOROUTE and IPIORESOLVE should appear in a header file somewhere. IP(4)

Navigation Options