diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-26 16:38:00 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-26 16:38:00 -0400 |
| commit | 97d5c458cfa039d857301e1ca7d5af3beb37131d (patch) | |
| tree | b460cd850d0537eb71806ba30358840377b27688 /static/v10/man4/ip.4 | |
| parent | b89dc2331a50c63f8b33272a5c4c61ab98abdaa3 (diff) | |
build: Better Build System
Diffstat (limited to 'static/v10/man4/ip.4')
| -rw-r--r-- | static/v10/man4/ip.4 | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/static/v10/man4/ip.4 b/static/v10/man4/ip.4 deleted file mode 100644 index 62c85c21..00000000 --- a/static/v10/man4/ip.4 +++ /dev/null @@ -1,261 +0,0 @@ -.TH IP 4 -.CT 2 comm_mach -.SH NAME -ip, ip_ld \- DARPA internet protocol -.SH SYNOPSIS -.B #include <sys/inio.h> -.br -.B #include <sys/inet/in.h> -.br -.B #include <sys/inet/ip_var.h> -.SH DESCRIPTION -.PP -The -.I ip_ld -line discipline and the -.F /dev/ip* -files together implement the DARPA IP datagram protocol. -They are used by -the programs described in -.IR ipconfig (8) -and -.IR route (8). -.PP -Each Ethernet device, -Datakit channel, -or other stream -that is to send and receive IP packets -must be registered as an -`IP interface' -by pushing -.I ip_ld -and setting local and remote addresses -with -.I ioctl -calls. -Thereafter, -data received from the network -are assumed to be IP packets, -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 -.I ip -device files. -Other packets are routed to the IP interface -with a matching remote address -and retransmitted. -.PP -Data written on -.I ip -devices -are taken to be IP packets, -are handed to the IP interface -with a matching address, -and are sent. -Packets destined for unreachable places -are quietly dropped. -.PP -A packet consists of a single stream record, -followed by a delimiter: -at most one packet is returned by a -.I read -call; -an entire packet must be presented in a single -.IR write . -A packet includes the IP header. -Numbers in the header are in host byte order. -.PP -Different -.I ip -devices handle different protocols atop IP. -The minor device is the protocol number in the IP header; -e.g. 6 for TCP or 17 for UDP. -While an -.I ip -device is open, -it may not be opened again. -IP packets are often processed by pushing a line discipline -such as -.IR tcp_ld -on an -.I ip -device, -rather than by explicit -.I read -and -.I write -calls; -see -.IR tcp (4). -.PP -The following -.IR ioctl (2) -calls, defined in -.BR <sys/inio.h> , -apply to an IP interface. -.B IPIOLOCAL -and either -.B IPIOHOST -or -.B IPIONET -must be called on each interface -before packets will be routed correctly. -Type -.BR in_addr , -defined in -.BR <sys/inet/in.h> , -is a 32-bit integer -representing an IP address -in host byte order. -.nr Pw \w'\f5IPIORESOLVE 'u -.TP \n(Pwu -.B IPIOLOCAL -The third argument points to an -.BR in_addr : -the local IP address for this interface. -.TP -.B IPIOHOST -The third argument points to an -.BR in_addr : -the remote IP address of the single host -reachable through this interface. -.TP -.B IPIONET -The third argument -points to an -.BR in_addr : -the remote IP address 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 -.BI ( 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. -.TP -.B IPIOMASK -The third argument points to an -.B in_addr -containing a new network mask for this interface. -.TP -.B 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 interface. -.TP -.B IPIOARP -The network device for this interface -is an Ethernet. -Discard the Ethernet header from each incoming packet. -When sending a packet, -prefix an Ethernet header -containing protocol type -.B 0x8 -and a destination address -obtained by looking up the IP destination address -in a table. -If the IP address is not in the table, -discard the packet, -and make an -.B in_addr -containing the offending address -available for reading -on this file descriptor -(the one on which -.I ip_ld -was pushed). -.TP -.B IPIORESOLVE -The third argument points to a structure: -.EX -struct { - in_addr inaddr; - unsigned char enaddr[6]; -}; -.EE -Add an entry to the table consulted after -.BR IPIOARP , -mapping IP address -.B inaddr -to Ethernet address -.BR enaddr . -.LP -The following -.I ioctl -calls, define in -.BR <sys/inio.h> , -apply to the entire IP subsystem; -they may be used on any file with -.I ip_ld -pushed. -.TP \n(Pwu -.B IPIOROUTE -The third argument points to a structure: -.EX -struct route { - in_addr dst; - in_addr gate; -}; -.EE -Arrange that henceforth, -any IP packet destined for address -.B dst -will be routed as if destined for -.BR gate . -.TP -.B IPIOGETIFS -The third argument points to a union as follows. -The structure is defined in -.BR <sys/inet/ip_var.h> . -.EX -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; -}; -.EE -Before the call, -.B index -should contain an integer -naming an entry in the system's table -of active interfaces. -Interfaces are numbered in a continuous sequence starting at 0. -Out-of-range numbers return an error. -After the call, -.B ipif -is filled in with various numbers -about that interface. -.SH FILES -.B /dev/ip* -.SH SEE ALSO -.IR ioctl (2), -.IR internet (3), -.IR ipconfig (8), -.IR route (8) -.br -DARPA standards RFC 791, RFC 1122 -.SH 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. -.br -The structures used by -.B IPIOROUTE -and -.B IPIORESOLVE -should appear in a header file somewhere. |
