Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net/route_var.h
Show First 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | struct rib_head { | ||||
rt_gen_t rnh_gen; /* generation counter */ | rt_gen_t rnh_gen; /* generation counter */ | ||||
int rnh_multipath; /* multipath capable ? */ | int rnh_multipath; /* multipath capable ? */ | ||||
struct radix_node rnh_nodes[3]; /* empty tree for common case */ | struct radix_node rnh_nodes[3]; /* empty tree for common case */ | ||||
struct rmlock rib_lock; /* config/data path lock */ | struct rmlock rib_lock; /* config/data path lock */ | ||||
struct radix_mask_head rmhead; /* masks radix head */ | struct radix_mask_head rmhead; /* masks radix head */ | ||||
struct vnet *rib_vnet; /* vnet pointer */ | struct vnet *rib_vnet; /* vnet pointer */ | ||||
int rib_family; /* AF of the rtable */ | int rib_family; /* AF of the rtable */ | ||||
u_int rib_fibnum; /* fib number */ | u_int rib_fibnum; /* fib number */ | ||||
struct callout expire_callout; /* Callout for expiring dynamic routes */ | |||||
time_t next_expire; /* Next expire run ts */ | |||||
}; | }; | ||||
#define RIB_RLOCK_TRACKER struct rm_priotracker _rib_tracker | #define RIB_RLOCK_TRACKER struct rm_priotracker _rib_tracker | ||||
#define RIB_LOCK_INIT(rh) rm_init(&(rh)->rib_lock, "rib head lock") | #define RIB_LOCK_INIT(rh) rm_init(&(rh)->rib_lock, "rib head lock") | ||||
#define RIB_LOCK_DESTROY(rh) rm_destroy(&(rh)->rib_lock) | #define RIB_LOCK_DESTROY(rh) rm_destroy(&(rh)->rib_lock) | ||||
#define RIB_RLOCK(rh) rm_rlock(&(rh)->rib_lock, &_rib_tracker) | #define RIB_RLOCK(rh) rm_rlock(&(rh)->rib_lock, &_rib_tracker) | ||||
#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) | ||||
Show All 38 Lines | fib_rte_to_nh_flags(int rt_flags) | ||||
res |= (rt_flags & RTF_BLACKHOLE) ? NHF_BLACKHOLE : 0; | res |= (rt_flags & RTF_BLACKHOLE) ? NHF_BLACKHOLE : 0; | ||||
res |= (rt_flags & (RTF_DYNAMIC|RTF_MODIFIED)) ? NHF_REDIRECT : 0; | res |= (rt_flags & (RTF_DYNAMIC|RTF_MODIFIED)) ? NHF_REDIRECT : 0; | ||||
res |= (rt_flags & RTF_BROADCAST) ? NHF_BROADCAST : 0; | res |= (rt_flags & RTF_BROADCAST) ? NHF_BROADCAST : 0; | ||||
res |= (rt_flags & RTF_GATEWAY) ? NHF_GATEWAY : 0; | res |= (rt_flags & RTF_GATEWAY) ? NHF_GATEWAY : 0; | ||||
return (res); | return (res); | ||||
} | } | ||||
void tmproutes_update(struct rib_head *rnh, struct rtentry *rt); | |||||
void tmproutes_init(struct rib_head *rh); | |||||
void tmproutes_destroy(struct rib_head *rh); | |||||
#endif | #endif |