Changeset View
Changeset View
Standalone View
Standalone View
sys/net/route/route_var.h
Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | |||||
#define RIB_RUNLOCK(rh) rm_runlock(&(rh)->rib_lock, &_rib_tracker) | #define RIB_RUNLOCK(rh) rm_runlock(&(rh)->rib_lock, &_rib_tracker) | ||||
#define RIB_WLOCK(rh) rm_wlock(&(rh)->rib_lock) | #define RIB_WLOCK(rh) rm_wlock(&(rh)->rib_lock) | ||||
#define RIB_WUNLOCK(rh) rm_wunlock(&(rh)->rib_lock) | #define RIB_WUNLOCK(rh) rm_wunlock(&(rh)->rib_lock) | ||||
#define RIB_LOCK_ASSERT(rh) rm_assert(&(rh)->rib_lock, RA_LOCKED) | #define RIB_LOCK_ASSERT(rh) rm_assert(&(rh)->rib_lock, RA_LOCKED) | ||||
#define RIB_WLOCK_ASSERT(rh) rm_assert(&(rh)->rib_lock, RA_WLOCKED) | #define RIB_WLOCK_ASSERT(rh) rm_assert(&(rh)->rib_lock, RA_WLOCKED) | ||||
/* Constants */ | /* Constants */ | ||||
#define RIB_MAX_RETRIES 3 | #define RIB_MAX_RETRIES 3 | ||||
#define RT_MAXFIBS UINT16_MAX | |||||
/* Macro for verifying fields in af-specific 'struct route' structures */ | /* Macro for verifying fields in af-specific 'struct route' structures */ | ||||
#define CHK_STRUCT_FIELD_GENERIC(_s1, _f1, _s2, _f2) \ | #define CHK_STRUCT_FIELD_GENERIC(_s1, _f1, _s2, _f2) \ | ||||
_Static_assert(sizeof(((_s1 *)0)->_f1) == sizeof(((_s2 *)0)->_f2), \ | _Static_assert(sizeof(((_s1 *)0)->_f1) == sizeof(((_s2 *)0)->_f2), \ | ||||
"Fields " #_f1 " and " #_f2 " size differs"); \ | "Fields " #_f1 " and " #_f2 " size differs"); \ | ||||
_Static_assert(__offsetof(_s1, _f1) == __offsetof(_s2, _f2), \ | _Static_assert(__offsetof(_s1, _f1) == __offsetof(_s2, _f2), \ | ||||
"Fields " #_f1 " and " #_f2 " offset differs"); | "Fields " #_f1 " and " #_f2 " offset differs"); | ||||
Show All 9 Lines | #define CHK_STRUCT_ROUTE_FIELDS(_route_new) \ | ||||
_CHK_ROUTE_FIELD(_route_new, ro_mtu) \ | _CHK_ROUTE_FIELD(_route_new, ro_mtu) \ | ||||
_CHK_ROUTE_FIELD(_route_new, spare) | _CHK_ROUTE_FIELD(_route_new, spare) | ||||
#define CHK_STRUCT_ROUTE_COMPAT(_ro_new, _dst_new) \ | #define CHK_STRUCT_ROUTE_COMPAT(_ro_new, _dst_new) \ | ||||
CHK_STRUCT_ROUTE_FIELDS(_ro_new); \ | CHK_STRUCT_ROUTE_FIELDS(_ro_new); \ | ||||
_Static_assert(__offsetof(struct route, ro_dst) == __offsetof(_ro_new, _dst_new),\ | _Static_assert(__offsetof(struct route, ro_dst) == __offsetof(_ro_new, _dst_new),\ | ||||
"ro_dst and " #_dst_new " are at different offset") | "ro_dst and " #_dst_new " are at different offset") | ||||
struct rib_head *rt_tables_get_rnh(int fib, int family); | struct rib_head *rt_tables_get_rnh(uint32_t table, sa_family_t family); | ||||
void rt_mpath_init_rnh(struct rib_head *rnh); | void rt_mpath_init_rnh(struct rib_head *rnh); | ||||
int rt_getifa_fib(struct rt_addrinfo *info, u_int fibnum); | int rt_getifa_fib(struct rt_addrinfo *info, u_int fibnum); | ||||
void rt_setmetrics(const struct rt_addrinfo *info, struct rtentry *rt); | void rt_setmetrics(const struct rt_addrinfo *info, struct rtentry *rt); | ||||
#ifdef RADIX_MPATH | #ifdef RADIX_MPATH | ||||
struct radix_node *rt_mpath_unlink(struct rib_head *rnh, | struct radix_node *rt_mpath_unlink(struct rib_head *rnh, | ||||
struct rt_addrinfo *info, struct rtentry *rto, int *perror); | struct rt_addrinfo *info, struct rtentry *rto, int *perror); | ||||
#endif | #endif | ||||
struct rib_cmd_info; | struct rib_cmd_info; | ||||
▲ Show 20 Lines • Show All 129 Lines • Show Last 20 Lines |