#include <net/if_private.h>

net/if_private.h Kernel.framework

61 macros · 22 structs · 5 enums

macroIFEF_AUTOCONFIGURING

extended flags definitions: (all bits reserved for internal/future use)
#define IFEF_AUTOCONFIGURING 0x00000001
allow BOOTP/DHCP replies to enter

macroIFEF_ENQUEUE_MULTI

#define IFEF_ENQUEUE_MULTI 0x00000002
enqueue multiple packets at once

macroIFEF_DELAY_START

#define IFEF_DELAY_START 0x00000004
delay start callback

macroIFEF_PROBE_CONNECTIVITY

#define IFEF_PROBE_CONNECTIVITY 0x00000008
Probe connections going over this interface

macroIFEF_ADV_REPORT

#define IFEF_ADV_REPORT 0x00000010
Supports interface advisory report

macroIFEF_IPV6_DISABLED

#define IFEF_IPV6_DISABLED 0x00000020
coupled to ND6_IFF_IFDISABLED

macroIFEF_ACCEPT_RTADV

#define IFEF_ACCEPT_RTADV 0x00000040
accepts IPv6 RA on the interface

macroIFEF_TXSTART

#define IFEF_TXSTART 0x00000080
has start callback

macroIFEF_RXPOLL

#define IFEF_RXPOLL 0x00000100
supports opportunistic input poll

macroIFEF_VLAN

#define IFEF_VLAN 0x00000200
interface has one or more vlans

macroIFEF_BOND

#define IFEF_BOND 0x00000400
interface is part of bond

macroIFEF_ARPLL

#define IFEF_ARPLL 0x00000800
ARP for IPv4LL addresses

macroIFEF_CLAT46

#define IFEF_CLAT46 0x00001000
CLAT46 RFC 6877

macroIS_INTF_CLAT46

#define IS_INTF_CLAT46(ifp) ((ifp) != NULL && ((ifp)->if_eflags & IFEF_CLAT46))

macroINTF_ADJUST_MTU_FOR_CLAT46

#define INTF_ADJUST_MTU_FOR_CLAT46(intf) (IS_INTF_CLAT46((intf)) ||
     IS_INTF_CLAT46((intf)->if_delegated.ifp))

macroIFEF_NOAUTOIPV6LL

XXX IFEF_NOAUTOIPV6LL is deprecated and should be done away with. Configd pretty much manages the interface configuration. Rather than looking at the flag we check if a specific LLA has to be configured or the IID has to be generated by kernel.
#define IFEF_NOAUTOIPV6LL 0x00002000
Need explicit IPv6 LL address

macroIFEF_EXPENSIVE

#define IFEF_EXPENSIVE 0x00004000
Data access has a cost

macroIFEF_IPV4_ROUTER

#define IFEF_IPV4_ROUTER 0x00008000
interior when in IPv4 router mode

macroIFEF_CLONE

#define IFEF_CLONE 0x00010000
created using if_clone

macroIFEF_LOCALNET_PRIVATE

#define IFEF_LOCALNET_PRIVATE 0x00020000
local private network

macroIFEF_SERVICE_TRIGGERED

#define IFEF_SERVICE_TRIGGERED IFEF_LOCALNET_PRIVATE

macroIFEF_IPV6_ND6ALT

#define IFEF_IPV6_ND6ALT 0x00040000
alternative. KPI for ND6

macroIFEF_RESTRICTED_RECV

#define IFEF_RESTRICTED_RECV 0x00080000
interface restricts inbound pkts

macroIFEF_AWDL

#define IFEF_AWDL 0x00100000
Apple Wireless Direct Link

macroIFEF_NOACKPRI

#define IFEF_NOACKPRI 0x00200000
No TCP ACK prioritization

macroIFEF_AWDL_RESTRICTED

#define IFEF_AWDL_RESTRICTED 0x00400000
Restricted AWDL mode

macroIFEF_2KCL

#define IFEF_2KCL 0x00800000
prefers 2K cluster (socket based tunnel)

macroIFEF_UNUSED1

#define IFEF_UNUSED1 0x01000000

macroIFEF_UNUSED2

#define IFEF_UNUSED2 0x02000000

macroIFEF_SKYWALK_NATIVE

#define IFEF_SKYWALK_NATIVE 0x04000000
Native Skywalk support

macroIFEF_3CA

#define IFEF_3CA 0x08000000
Capable of 3CA

macroIFEF_SENDLIST

#define IFEF_SENDLIST 0x10000000
Supports tx packet lists

macroIFEF_QOSMARKING_ENABLED

#define IFEF_QOSMARKING_ENABLED 0x40000000
QoS marking is enabled

macroIFEF_UPDOWNCHANGE

#define IFEF_UPDOWNCHANGE 0x80000000
up/down state is changing

enum(anonymous)

Link Quality Metrics IFNET_LQM_THRESH_OFF Metric is not available; device is off. IFNET_LQM_THRESH_UNKNOWN Metric is not (yet) known. IFNET_LQM_THRESH_BAD Link quality is considered bad by driver. IFNET_LQM_THRESH_POOR Link quality is considered poor by driver. IFNET_LQM_THRESH_GOOD Link quality is considered good by driver.
underlying type int
IFNET_LQM_THRESH_OFF-2
IFNET_LQM_THRESH_UNKNOWN-1
IFNET_LQM_THRESH_ABORT10
IFNET_LQM_THRESH_MINIMALLY_VIABLE20
IFNET_LQM_THRESH_POOR50
IFNET_LQM_THRESH_GOOD100

macroIFNET_LQM_THRESH_BAD

#define IFNET_LQM_THRESH_BAD IFNET_LQM_THRESH_ABORT

macroIF_DESCSIZE

#define IF_DESCSIZE 128

structif_descreq

Structure for SIOC[SG]IFDESC
size 148, align 4
char[16]ifdr_nameinterface name
u_int32_tifdr_lenup to IF_DESCSIZE
u_int8_t[128]ifdr_descopaque data

macroIFNET_SCHED_MODEL_LIST

#define IFNET_SCHED_MODEL_LIST X(IFNET_SCHED_MODEL_NORMAL,            0x00000000, normal)
	X(IFNET_SCHED_MODEL_DRIVER_MANAGED,    0x00000001, driver managed)
	X(IFNET_SCHED_MODEL_FQ_CODEL,          0x00000002, fq_codel)
	X(IFNET_SCHED_MODEL_FQ_CODEL_DM,       0x00000004, fq_codel DM)
	X(IFNET_SCHED_MODEL_FQ_CODEL_NEW,      0x00000008, fq_codel_new)
	X(IFNET_SCHED_MODEL_FQ_CODEL_NEW_DM,   0x00000010, fq_codel_new DM)

enum(anonymous)

underlying type unsigned int
IFNET_SCHED_MODEL_NORMAL0
IFNET_SCHED_MODEL_DRIVER_MANAGED1
IFNET_SCHED_MODEL_FQ_CODEL2
IFNET_SCHED_MODEL_FQ_CODEL_DM4
IFNET_SCHED_MODEL_FQ_CODEL_NEW8
IFNET_SCHED_MODEL_FQ_CODEL_NEW_DM16

macroX

#define X(name, value, ...) name = value,

macroIFNET_MODEL_IS_VALID

#define IFNET_MODEL_IS_VALID(_model) (((_model == IFNET_SCHED_MODEL_NORMAL) || ((_model) & IFNET_SCHED_VALID_MODELS)) && ((_model) & (_model - 1)) == 0)

macroIFLPRF_ALTQ

Values for iflpr_flags
#define IFLPRF_ALTQ 0x1
configured via PF/ALTQ

macroIFLPRF_DRVMANAGED

#define IFLPRF_DRVMANAGED 0x2
output queue scheduled by drv

structif_linkparamsreq

Structure for SIOCGIFLINKPARAMS
size 256, align 8
char[16]iflpr_nameinterface name
u_int32_tiflpr_flags
u_int32_tiflpr_output_sched
u_int64_tiflpr_output_tbr_rate
u_int32_tiflpr_output_tbr_percent
u_int64_tiflpr_input_tbr_rate
struct if_bandwidthsiflpr_output_bw
struct if_bandwidthsiflpr_input_bw
struct if_latenciesiflpr_output_lt
struct if_latenciesiflpr_input_lt
struct if_netem_paramsiflpr_input_netem
struct if_netem_paramsiflpr_output_netem

structif_qstatsreq

Structure for SIOCGIFQUEUESTATS
size 40, align 8
char[16]ifqr_nameinterface name
u_int32_tifqr_grp_idx
u_int32_tifqr_slot
void *ifqr_buf
intifqr_len

enum(anonymous)

Node Proximity Metrics
underlying type int
IFNET_NPM_THRESH_UNKNOWN-1
IFNET_NPM_THRESH_NEAR30
IFNET_NPM_THRESH_GENERAL70
IFNET_NPM_THRESH_FAR100

enum(anonymous)

Received Signal Strength Indication [special values] IFNET_RSSI_UNKNOWN Metric is not (yet) known.
underlying type int
IFNET_RSSI_UNKNOWN-2147483648INT32_MIN

structkev_dl_node_presence

size 132, align 4
struct net_event_datalink_data
struct sockaddr_in6sin6_node_address
struct sockaddr_dlsdl_node_address
int32_trssi
intlink_quality_metric
intnode_proximity_metric
u_int8_t[48]node_service_info

structkev_dl_node_absence

size 72, align 4
struct net_event_datalink_data
struct sockaddr_in6sin6_node_address
struct sockaddr_dlsdl_node_address

structif_throttlereq

Structure for SIOC[SG]IFTHROTTLE
size 20, align 4
char[16]ifthr_nameinterface name
u_int32_tifthr_level

enum(anonymous)

Interface throttling levels IFNET_THROTTLE_OFF The default throttling level (no throttling.) All service class queues operate normally according to the standard packet scheduler configuration. IFNET_THROTTLE_OPPORTUNISTIC One or more service class queues that are responsible for managing "opportunistic" traffics are suspended. Packets enqueued on those queues will be dropped and a flow advisory error will be generated to the data source. Existing packets in the queues will stay enqueued until the interface is no longer throttled, or until they are explicitly flushed.
underlying type unsigned int
IFNET_THROTTLE_OFF0
IFNET_THROTTLE_OPPORTUNISTIC1

structif_agentidreq

Structure for SIOC[A/D]IFAGENTID
size 32, align 1
char[16]ifar_nameinterface name
uuid_tifar_uuidagent UUID to add or delete

structif_agentidsreq

Structure for SIOCGIFAGENTIDS
size 32, align 8
char[16]ifar_nameinterface name
u_int32_tifar_countnumber of agent UUIDs
uuid_t *ifar_uuidsarray of agent UUIDs

structif_nexusreq

Structure for SIOCGIFNEXUS
size 96, align 8
char[16]ifnr_nameinterface name
uint64_tifnr_flagsunused, must be zero
uuid_tifnr_netifnetif nexus instance UUID
uuid_tifnr_flowswitchflowswitch nexus UUID
uint64_t[5]ifnr_reserved

macroDLIL_MODIDLEN

#define DLIL_MODIDLEN 20
same as IFNET_MODIDLEN

macroDLIL_MODARGLEN

#define DLIL_MODARGLEN 12
same as IFNET_MODARGLEN

structkev_dl_issues

DLIL KEV_DL_ISSUES event structure
size 72, align 8
struct net_event_datalink_data
u_int8_t[20]modid
u_int64_ttimestamp
u_int8_t[12]info

structkev_dl_rrc_state

size 28, align 4
struct net_event_datalink_data
u_int32_trrc_state

structkev_dl_low_power_mode

size 28, align 4
struct net_event_datalink_data
intlow_power_event

macroIFNET_SIGNATURELEN

Length of network signature/fingerprint blob.
#define IFNET_SIGNATURELEN 20

structif_nsreq

Structure for SIOC[S/G]IFNETSIGNATURE
size 40, align 2
char[16]ifnsr_name
u_int8_tifnsr_familyaddress family
u_int8_tifnsr_lendata length
u_int16_tifnsr_flagsfor future
u_int8_t[20]ifnsr_data

structif_netidreq

Structure for SIOCSIFNETWORKID
size 49, align 1
char[16]ifnetid_name
u_int8_tifnetid_len
u_int8_t[32]ifnetid

macroNAT64_PREFIX_LEN_32

#define NAT64_PREFIX_LEN_32 4

macroNAT64_PREFIX_LEN_40

#define NAT64_PREFIX_LEN_40 5

macroNAT64_PREFIX_LEN_48

#define NAT64_PREFIX_LEN_48 6

macroNAT64_PREFIX_LEN_56

#define NAT64_PREFIX_LEN_56 7

macroNAT64_PREFIX_LEN_64

#define NAT64_PREFIX_LEN_64 8

macroNAT64_PREFIX_LEN_96

#define NAT64_PREFIX_LEN_96 12

macroNAT64_PREFIX_LEN_MAX

#define NAT64_PREFIX_LEN_MAX NAT64_PREFIX_LEN_96

macroNAT64_MAX_NUM_PREFIXES

#define NAT64_MAX_NUM_PREFIXES 4

structipv6_prefix

size 20, align 4
struct in6_addripv6_prefix
uint32_tprefix_len

structif_ipv6_address

size 20, align 4
struct in6_addrv6_address
uint32_tv6_prefixlen

structif_nat64req

Structure for SIOC[S/G]IFNAT64PREFIX
size 96, align 4
char[16]ifnat64_name
struct ipv6_prefix[4]ifnat64_prefixes

structif_clat46req

Structure for SIOCGIFCLAT46ADDR
size 36, align 4
char[16]ifclat46_name
struct if_ipv6_addressifclat46_addr

structif_order

Structure for SIOC[S/G]IFORDER When setting, ifo_count is the number of u_int32_t interface indices in the ifo_ordered_indices array. When getting, if ifo_count is 0, the length of the ordered list will be returned. If the ifo_count is non-0, it is the number of u_int32_t interface indices allocated. Upon return, ifo_count will contain the number of indices copied into the array.
size 16, align 8
u_int32_tifo_count
u_int32_tifo_reserved
mach_vm_address_tifo_ordered_indicesarray of u_int32_t

structif_tdmreq

Struct for traffic class to DSCP mapping
size 32, align 8
char[16]iftdm_name
u_int32_tiftdm_lenbyte length of the table
struct netsvctype_dscp_map *iftdm_table

structif_protolistreq

Structure for SIOCGIFPROTOLIST.
size 32, align 8
char[16]ifpl_name
u_int32_tifpl_count
u_int32_tifpl_reservedmust be zero
u_int32_t *ifpl_list

macroINTCOPROC_RESTRICTED_ENTITLEMENT

Entitlement to send/receive data on an INTCOPROC interface
#define INTCOPROC_RESTRICTED_ENTITLEMENT "com.apple.private.network.intcoproc.restricted"

macroINTCOPROC_RESTRICTED_ENTITLEMENT_DEVELOPMENT

#define INTCOPROC_RESTRICTED_ENTITLEMENT_DEVELOPMENT "com.apple.private.network.intcoproc.restricted.development"

macroMANAGEMENT_DATA_ENTITLEMENT

Entitlement to send/receive data on a management interface
#define MANAGEMENT_DATA_ENTITLEMENT "com.apple.private.network.management.data"

macroMANAGEMENT_DATA_ENTITLEMENT_DEVELOPMENT

#define MANAGEMENT_DATA_ENTITLEMENT_DEVELOPMENT "com.apple.private.network.management.data.development"

macroMANAGEMENT_CONTROL_ENTITLEMENT

Entitlement to make change to a management interface
#define MANAGEMENT_CONTROL_ENTITLEMENT "com.apple.private.network.management.control"

macroULTRA_CONSTRAINED_ENTITLEMENT

Entitlement to allow socket access on ultra-constrained interfaces
#define ULTRA_CONSTRAINED_ENTITLEMENT "com.apple.private.network.ultraconstrained"