#include <net/route_private.h>

net/route_private.h Kernel.framework

includes: Kernel/net/route.h, Kernel/stdint.h, sys/types.h, sys/socket.h, sys/socketvar.h, uuid/uuid.h
9 structs · 8 macros

structroute_old

size 32, align 8
void *ro_rt
uint32_tro_flags
struct sockaddrro_dst

structkev_netevent_apnfallbk_data

size 20, align 4
pid_tepideffective PID
uuid_teuuideffective UUID

structrt_reach_info

Route reachability info.
size 40, align 8
u_int32_tri_refcntreference count
u_int32_tri_probestotal # of probes
u_int64_tri_snd_expiretx expiration (calendar) time
u_int64_tri_rcv_expirerx expiration (calendar) time
int32_tri_rssireceived signal strength
int32_tri_lqmlink quality metric
int32_tri_npmnode proximity metric

structrt_addrinfo_ext

Route address information with extra space for "tiny" socket addresses from the user space. A "tiny" socket address has the `sa_len' field smaller than the canonical sockaddr structure. To preserve the type and the bounds safety, such "tiny" addresses are copied to the `rtix_tiny_addr' field.
size 208, align 8
struct rt_addrinfortix_infoaddr info containing sockaddr array
struct sockaddr[8]rtix_tiny_addrstorage for the "tiny" sockaddr addresss
uint8_trtix_next_tinyoffset of the next "tiny" address

structrt_msghdr_common

The following is used internally when parsing routing messages to avoid potential boundary issues when using shorter structures.
size 32, align 4
u_shortrtm_msglento skip over non-understood messages
u_charrtm_versionfuture binary compatibility
u_charrtm_typemessage type
u_shortrtm_indexindex for associated ifp
intrtm_flagsflags, incl. kern & message, e.g. DONE
intrtm_addrsbitmask identifying sockaddrs in msg
pid_trtm_pididentify sender
intrtm_seqfor sender to identify action
intrtm_errnowhy failed
intrtm_usefrom rtentry

structrt_msghdr_ext

Extended routing message header (private).
size 136, align 8
u_shortrtm_msglento skip over non-understood messages
u_charrtm_versionfuture binary compatibility
u_charrtm_typemessage type
u_int32_trtm_indexindex for associated ifp
u_int32_trtm_flagsflags, incl. kern & message, e.g. DONE
u_int32_trtm_reservedfor future use
u_int32_trtm_addrsbitmask identifying sockaddrs in msg
pid_trtm_pididentify sender
intrtm_seqfor sender to identify action
intrtm_errnowhy failed
u_int32_trtm_usefrom rtentry
u_int32_trtm_initswhich metrics we are initializing
struct rt_metricsrtm_rmxmetrics themselves
struct rt_reach_infortm_riroute reachability info

macroRTM_GET_SILENT

Message types.
#define RTM_GET_SILENT 0x11

macroRTM_GET_EXT

#define RTM_GET_EXT 0x15

macroRTV_REFRESH_HOST

Bitmask values for rtm_inits and rmx_locks.
#define RTV_REFRESH_HOST 0x100
init host route to expedite refresh

macroIFSCOPE_NONE

For scoped routing; a zero interface scope value means nil/no scope.
#define IFSCOPE_NONE 0

macroIFSCOPE_UNKNOWN

#define IFSCOPE_UNKNOWN IFSCOPE_NONE

structrtstat_64

Routing statistics.
size 48, align 8
uint64_trts_badredirectbogus redirect calls
uint64_trts_dynamicroutes created by redirects
uint64_trts_newgatewayroutes modified by redirects
uint64_trts_unreachlookups which failed
uint64_trts_wildcardlookups satisfied by a wildcard
uint64_trts_badrtgwrouteroute to gateway is not direct

structxrtsockgen

Routing socket pcblist
size 32, align 8
u_int32_txg_lenlength of this structure
u_int64_txg_countnumber of PCBs at this time
u_int64_txg_gencntgeneration count at this time
u_int64_txg_sogencurrent socket generation count

structxrtsockpcb

size 536, align 8
uint32_txrp_len
uint32_txrp_kind
uint64_txrp_gencnt
uint16_txrp_family
uint16_txrp_protocol
unnamed union at Kernel/net/route_private.h:195:2xr_fu
struct sockaddrxrfu_addrdestination address
char[256]xrfu_dummy1
unnamed union at Kernel/net/route_private.h:200:2xr_lu
struct sockaddrxrlu_addrdestination address
char[256]xrlu_dummy1

macroxrp_faddr

#define xrp_faddr xr_fu.xrfu_addr

macroxrp_laddr

#define xrp_laddr xr_lu.xrlu_addr

macroHAS_XRTSOCKPCB

#define HAS_XRTSOCKPCB 1