内に含ま
その他のドキュメント
サポート リソース
| PDF 文書ファイルをダウンロードする
NAME
- if_tcp, if - general properties of Internet Protocol network interfaces
DESCRIPTION
- A network interface is a device for sending and receiving packets on a network. A network interface is usually a hardware device, although one may be implemented in software. Network interfaces used by the Internet Protocol (IP) must be STREAMS devices conforming to the Datalink Provider Interface (DLPI).
- An interface becomes available to IP when it is opened and the IP module is pushed onto the stream with the I_PUSH ioctl( ) call. This may be initiated by the kernel at boot time or by a user program some time after the system is running. Each interface must be assigned an IP address with the SIOCSIFADDR ioctl( ) before it can be used. On interfaces where the network-to-link layer address mapping is static, only the network number is taken from the ioctl( ) request; the remainder is found in a hardware specific manner. On interfaces which provide dynamic network-to-link layer address mapping facilities (for example, 10Mb/s Ethernets using arp (7)),the entire address specified in the ioctl( ) is used. A routing table entry for destinations on the network of the interface is installed automatically when an interface's address is set.
IOCTLS
- The following ioctl( ) calls may be used to manipulate IP network interfaces. Unless specified otherwise, the request takes an ifreq structure as its parameter. This structure has the form:
-
-
/* Interface request structure used for socket ioctl's. All * /
/* interface ioctl's must have parameter definitions which * /
/* begin with ifr_name. The remainder may be interface specific. * /
-
struct ifreq {
-
-
#define IFNAMSIZ 16
char ifr_name[IFNAMSIZ]; /* if name, for example * /
/* "emd1" * /
union {
struct sockaddr ifru_addr;
struct sockaddr ifru_dstaddr;
char ifru_oname[IFNAMSIZ]; /* other if name * /
struct sockaddr ifru_broadaddr;
short ifru_flags;
int ifru_metric;
char ifru_data[1]; /* interface dependent data * /
char ifru_enaddr[6];
int if_muxid[2]; /* mux id's for arp and ip * /
} ifr_ifru;
#define ifr_addr ifr_ifru.ifru_addr /* address * /
#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p
link * /
#define ifr_oname ifr_ifru.ifru_oname /* other if name * /
#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address * /
#define ifr_flags ifr_ifru.ifru_flags
-
/* flags * /
-
-
#define ifr_metric ifr_ifru.ifru_metric /* metric * /
#define ifr_data ifr_ifru.ifru_data /* for use by interface * /
#define ifr_enaddr ifr_ifru.ifru_enaddr /* ethernet address * /
};
-
-
SIOCSIFADDR
- Set interface address. Following the address assignment, the "initialization" routine for the interface is called.
-
-
SIOCGIFADDR
- Get interface address.
-
-
SIOCSIFDSTADDR
- Set point to point address for interface.
-
-
SIOCGIFDSTADDR
- Get point to point address for interface.
-
-
SIOCSIFFLAGS
- Set interface flags field. If the interface is marked down, any processes currently routing packets through the interface are notified.
-
-
SIOCGIFFLAGS
- Get interface flags.
-
-
SIOCGIFCONF
- Get interface configuration list. This request takes an ifconf structure (see below) as a value-result parameter. The ifc_len field should be initially set to the size of the buffer pointed to by
-
ifc_buf. On return it will contain the length, in bytes, of the
- configuration list.
-
-
SIOGIFNUM
- Get number of interfaces. This request returns an integer which is the number of interface descriptions (struct ifreq) that will be returned by the SIOCGIFCONF ioctl; that is it gives an indication of how large ifc_len has to be.
-
-
SIOCSIFMTU
- Set the maximum transmission unit size for interface. Place the result of this request in ifru_metric field. The mtu has to be
- smaller than physical mtu limitation (which is reported in the DLPI info ack message).
-
-
SIOCGIFMTU
- Get the maximum transmission unit size for interface. Place the result of this request in ifru_metric field.
-
-
SIOCSIFMETRIC
- Set the metric associated with the interface. The metric is used by routine daemons such as in.routed(1M).
-
-
SIOCGIFMETRIC
- Get the metric associated with the interface.
-
-
SIOCGIFMUXID
- Get the ip and arp muxid associated with the interface.
-
-
SIOCSIFMUXID
- Set the ip and arp muxid associated with the interface.
- The ifconf structure has the form:
-
/*
-
-
* Structure used in SIOCGIFCONF request.
* Used to retrieve interface configuration
* for machine (useful for programs which
* must know all networks accessible).
* /
struct ifconf {
int ifc_len; /* size of associated buffer * /
union {
caddr_t ifcu_buf;
struct ifreq * ifcu_req;
} ifc_ifcu;
#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address * /
#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned * /
};
SEE ALSO
-
ifconfig (1M),in.routed(1M), arp (7),ip(7)
|
|