#include <net/route_private.h>
net/route_private.h
structkev_netevent_apnfallbk_data
| pid_t | epid | effective PID |
| uuid_t | euuid | effective UUID |
structrt_reach_info
Route reachability info.
| u_int32_t | ri_refcnt | reference count |
| u_int32_t | ri_probes | total # of probes |
| u_int64_t | ri_snd_expire | tx expiration (calendar) time |
| u_int64_t | ri_rcv_expire | rx expiration (calendar) time |
| int32_t | ri_rssi | received signal strength |
| int32_t | ri_lqm | link quality metric |
| int32_t | ri_npm | node 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.
| struct rt_addrinfo | rtix_info | addr info containing sockaddr array |
| struct sockaddr[8] | rtix_tiny_addr | storage for the "tiny" sockaddr addresss |
| uint8_t | rtix_next_tiny | offset 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.
| u_short | rtm_msglen | to skip over non-understood messages |
| u_char | rtm_version | future binary compatibility |
| u_char | rtm_type | message type |
| u_short | rtm_index | index for associated ifp |
| int | rtm_flags | flags, incl. kern & message, e.g. DONE |
| int | rtm_addrs | bitmask identifying sockaddrs in msg |
| pid_t | rtm_pid | identify sender |
| int | rtm_seq | for sender to identify action |
| int | rtm_errno | why failed |
| int | rtm_use | from rtentry |
structrt_msghdr_ext
Extended routing message header (private).
| u_short | rtm_msglen | to skip over non-understood messages |
| u_char | rtm_version | future binary compatibility |
| u_char | rtm_type | message type |
| u_int32_t | rtm_index | index for associated ifp |
| u_int32_t | rtm_flags | flags, incl. kern & message, e.g. DONE |
| u_int32_t | rtm_reserved | for future use |
| u_int32_t | rtm_addrs | bitmask identifying sockaddrs in msg |
| pid_t | rtm_pid | identify sender |
| int | rtm_seq | for sender to identify action |
| int | rtm_errno | why failed |
| u_int32_t | rtm_use | from rtentry |
| u_int32_t | rtm_inits | which metrics we are initializing |
| struct rt_metrics | rtm_rmx | metrics themselves |
| struct rt_reach_info | rtm_ri | route reachability info |
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.
| uint64_t | rts_badredirect | bogus redirect calls |
| uint64_t | rts_dynamic | routes created by redirects |
| uint64_t | rts_newgateway | routes modified by redirects |
| uint64_t | rts_unreach | lookups which failed |
| uint64_t | rts_wildcard | lookups satisfied by a wildcard |
| uint64_t | rts_badrtgwroute | route to gateway is not direct |
structxrtsockgen
Routing socket pcblist
| u_int32_t | xg_len | length of this structure |
| u_int64_t | xg_count | number of PCBs at this time |
| u_int64_t | xg_gencnt | generation count at this time |
| u_int64_t | xg_sogen | current socket generation count |
structxrtsockpcb
| uint32_t | xrp_len | |||||||
| uint32_t | xrp_kind | |||||||
| uint64_t | xrp_gencnt | |||||||
| uint16_t | xrp_family | |||||||
| uint16_t | xrp_protocol | |||||||
| unnamed union at Kernel/net/route_private.h:195:2 | xr_fu | |||||||
| ||||||||
| unnamed union at Kernel/net/route_private.h:200:2 | xr_lu | |||||||
| ||||||||
macroxrp_faddr
#define xrp_faddr xr_fu.xrfu_addr
macroxrp_laddr
#define xrp_laddr xr_lu.xrlu_addr
macroHAS_XRTSOCKPCB
#define HAS_XRTSOCKPCB 1