-.\" $OpenBSD: netintro.4,v 1.53 2018/07/09 09:18:52 schwarze Exp $
+.\" $OpenBSD: netintro.4,v 1.54 2024/09/23 20:37:42 kn Exp $
.\" $NetBSD: netintro.4,v 1.4 1995/10/19 08:03:40 jtc Exp $
.\"
.\" Copyright (c) 1983, 1990, 1991, 1993
.\"
.\" @(#)netintro.4 8.2 (Berkeley) 11/30/93
.\"
-.Dd $Mdocdate: July 9 2018 $
+.Dd $Mdocdate: September 23 2024 $
.Dt NETINTRO 4
.Os
.Sh NAME
This structure is as follows:
.Bd -literal
struct ifreq {
-#define IFNAMSIZ 16
- char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
+ char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
union {
struct sockaddr ifru_addr;
struct sockaddr ifru_dstaddr;
#define ifr_hardmtu ifr_ifru.ifru_metric /* hardmtu (overload) */
#define ifr_media ifr_ifru.ifru_media /* media options */
#define ifr_rdomainid ifr_ifru.ifru_metric /* VRF instance (overload) */
-#define ifr_vnetid ifr_ifru.ifru_vnetid /* Virtual Net Id */
-#define ifr_ttl ifr_ifru.ifru_metric /* tunnel TTL (overload) */
+#define ifr_vnetid ifr_ifru.ifru_vnetid /* Virtual Net Id */
+#define ifr_ttl ifr_ifru.ifru_metric /* tunnel TTL (overload) */
+#define ifr_df ifr_ifru.ifru_metric /* tunnel DF (overload) */
#define ifr_data ifr_ifru.ifru_data /* for use by interface */
-#define ifr_index ifr_ifru.ifru_index /* interface index */
-#define ifr_llprio ifr_ifru.ifru_metric /* link layer priority */
+#define ifr_index ifr_ifru.ifru_index /* interface index */
+#define ifr_llprio ifr_ifru.ifru_metric /* link layer priority */
+#define ifr_hdrprio ifr_ifru.ifru_metric /* header prio field config */
+#define ifr_pwe3 ifr_ifru.ifru_metric /* PWE3 type */
};
.Ed
.Pp
.Bd -literal
struct ifmediareq {
char ifm_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- uint64_t ifm_current; /* current media options */
- uint64_t ifm_mask; /* don't care mask */
- uint64_t ifm_status; /* media status */
- uint64_t ifm_active; /* active options */
- int ifm_count; /* #entries in ifm_ulist array */
- uint64_t *ifm_ulist; /* media words */
+ uint64_t ifm_current; /* get/set current media options */
+ uint64_t ifm_mask; /* don't care mask */
+ uint64_t ifm_status; /* media status */
+ uint64_t ifm_active; /* active options */
+ int ifm_count; /* # entries in ifm_ulist array */
+ uint64_t *ifm_ulist; /* media words */
};
.Ed
.Pp
structure is as follows:
.Bd -literal
struct ifaliasreq {
- char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- struct sockaddr ifra_addr;
+ char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */
+ union {
+ struct sockaddr ifrau_addr;
+ int ifrau_align;
+ } ifra_ifrau;
+#ifndef ifra_addr
+#define ifra_addr ifra_ifrau.ifrau_addr
+#endif
struct sockaddr ifra_dstaddr;
-#define ifra_broadaddr ifra_dstaddr
+#define ifra_broadaddr ifra_dstaddr
struct sockaddr ifra_mask;
};
.Ed
Note, however, that this is an extension
that not all operating systems support.
.Bd -literal
-struct ifconf {
- int ifc_len; /* size of associated buffer */
+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 ret'd */
+#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
+#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */
};
.Ed
.It Dv SIOCIFCREATE Fa "struct ifreq *"
.Bd -literal
struct if_clonereq {
int ifcr_total; /* total cloners (out) */
- int ifcr_count; /* room for this many in user buf */
+ int ifcr_count; /* room for this many in user buffer */
char *ifcr_buffer; /* buffer for cloner names */
};
.Ed
structure is as follows:
.Bd -literal
struct ifg_req {
- char ifgrq_group[IFNAMSIZ];
+ union {
+ char ifgrqu_group[IFNAMSIZ];
+ char ifgrqu_member[IFNAMSIZ];
+ } ifgrq_ifgrqu;
+#define ifgrq_group ifgrq_ifgrqu.ifgrqu_group
+#define ifgrq_member ifgrq_ifgrqu.ifgrqu_member
};
struct ifgroupreq {
char ifgr_name[IFNAMSIZ];
u_int ifgr_len;
union {
- char ifgru_group[IFNAMSIZ];
- struct ifg_req *ifgru_groups;
+ char ifgru_group[IFNAMSIZ];
+ struct ifg_req *ifgru_groups;
+ struct ifg_attrib ifgru_attrib;
} ifgr_ifgru;
#define ifgr_group ifgr_ifgru.ifgru_group
#define ifgr_groups ifgr_ifgru.ifgru_groups
+#define ifgr_attrib ifgr_ifgru.ifgru_attrib
};
.Ed
.It Dv SIOCGIFGROUP Fa "struct ifgroupreq *"