Symbol: dxr
sys/netinet/in_fib_dxr.c
1029
dxr->d = malloc(dxr_tot_size, M_DXRLPM, M_NOWAIT);
sys/netinet/in_fib_dxr.c
1030
if (dxr->d == NULL) {
sys/netinet/in_fib_dxr.c
1035
memcpy(dxr->d, da->d_tbl, d_size);
sys/netinet/in_fib_dxr.c
1036
dxr->x = ((char *) dxr->d) + d_size;
sys/netinet/in_fib_dxr.c
1037
memcpy(dxr->x, da->x_tbl, x_size);
sys/netinet/in_fib_dxr.c
1038
dxr->r = ((char *) dxr->x) + x_size;
sys/netinet/in_fib_dxr.c
1039
dxr->d_shift = 32 - da->d_bits;
sys/netinet/in_fib_dxr.c
1040
dxr->x_shift = dxr_x;
sys/netinet/in_fib_dxr.c
1041
dxr->x_mask = 0xffffffffU >> (32 - dxr_x);
sys/netinet/in_fib_dxr.c
1042
memcpy(dxr->r, da->range_tbl, r_size);
sys/netinet/in_fib_dxr.c
1082
struct dxr *dxr = algo_data;
sys/netinet/in_fib_dxr.c
1084
return (dxr->nh_tbl[dxr_lookup(dxr, ntohl(key.addr4.s_addr))]);
sys/netinet/in_fib_dxr.c
1090
struct dxr *old_dxr = old_data;
sys/netinet/in_fib_dxr.c
1092
struct dxr *dxr;
sys/netinet/in_fib_dxr.c
1094
dxr = malloc(sizeof(*dxr), M_DXRAUX, M_NOWAIT);
sys/netinet/in_fib_dxr.c
1095
if (dxr == NULL) {
sys/netinet/in_fib_dxr.c
1108
dxr->aux = da;
sys/netinet/in_fib_dxr.c
1109
dxr->d = NULL;
sys/netinet/in_fib_dxr.c
1110
dxr->fd = fd;
sys/netinet/in_fib_dxr.c
1111
dxr->fibnum = fibnum;
sys/netinet/in_fib_dxr.c
1112
*data = dxr;
sys/netinet/in_fib_dxr.c
1120
struct dxr *dxr = data;
sys/netinet/in_fib_dxr.c
1121
struct dxr_aux *da = dxr->aux;
sys/netinet/in_fib_dxr.c
1125
free(dxr->d, M_DXRLPM);
sys/netinet/in_fib_dxr.c
1126
free(dxr, M_DXRAUX);
sys/netinet/in_fib_dxr.c
1148
struct dxr *dxr = __containerof(ctx, struct dxr, epoch_ctx);
sys/netinet/in_fib_dxr.c
1150
dxr_destroy(dxr);
sys/netinet/in_fib_dxr.c
1183
struct dxr *dxr = data;
sys/netinet/in_fib_dxr.c
1186
dxr_build(dxr);
sys/netinet/in_fib_dxr.c
1188
da = dxr->aux;
sys/netinet/in_fib_dxr.c
1189
if (da == NULL || dxr->d == NULL)
sys/netinet/in_fib_dxr.c
1196
dp->arg = dxr;
sys/netinet/in_fib_dxr.c
1220
struct dxr *dxr = data;
sys/netinet/in_fib_dxr.c
1221
struct dxr *new_dxr;
sys/netinet/in_fib_dxr.c
1235
da = dxr->aux;
sys/netinet/in_fib_dxr.c
1237
MPASS(da->fd == dxr->fd);
sys/netinet/in_fib_dxr.c
1274
res = dxr_init(0, dxr->fd, data, (void **) &new_dxr);
sys/netinet/in_fib_dxr.c
1293
if (fib_set_datapath_ptr(dxr->fd, &new_dp)) {
sys/netinet/in_fib_dxr.c
1294
fib_set_algo_ptr(dxr->fd, new_dxr);
sys/netinet/in_fib_dxr.c
1295
fib_epoch_call(epoch_dxr_destroy, &dxr->epoch_ctx);
sys/netinet/in_fib_dxr.c
1299
FIB_PRINTF(LOG_NOTICE, dxr->fd, "fib_set_datapath_ptr() failed");
sys/netinet/in_fib_dxr.c
1313
SYSCTL_NODE(_net_route_algo, OID_AUTO, dxr, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
sys/netinet/in_fib_dxr.c
292
dxr_lookup_##D(struct dxr *dxr, uint32_t dst) \
sys/netinet/in_fib_dxr.c
295
uint16_t *dt = dxr->d; \
sys/netinet/in_fib_dxr.c
296
struct direct_entry *xt = dxr->x; \
sys/netinet/in_fib_dxr.c
303
return (range_lookup(dxr->r, de, dst)); \
sys/netinet/in_fib_dxr.c
310
struct dxr *dxr = algo_data; \
sys/netinet/in_fib_dxr.c
312
return (dxr->nh_tbl[dxr_lookup_##D(dxr, \
sys/netinet/in_fib_dxr.c
328
dxr_lookup(struct dxr *dxr, uint32_t dst)
sys/netinet/in_fib_dxr.c
331
uint16_t *dt = dxr->d;
sys/netinet/in_fib_dxr.c
332
struct direct_entry *xt = dxr->x;
sys/netinet/in_fib_dxr.c
334
de = xt[(dt[dst >> dxr->d_shift] << dxr->x_shift) +
sys/netinet/in_fib_dxr.c
335
((dst >> DXR_RANGE_SHIFT) & dxr->x_mask)];
sys/netinet/in_fib_dxr.c
338
return (range_lookup(dxr->r, de, dst));
sys/netinet/in_fib_dxr.c
844
dxr_build(struct dxr *dxr)
sys/netinet/in_fib_dxr.c
846
struct dxr_aux *da = dxr->aux;
sys/netinet/in_fib_dxr.c
858
MPASS(dxr->d == NULL);
sys/netinet/in_fib_dxr.c
861
da = malloc(sizeof(*dxr->aux), M_DXRAUX, M_NOWAIT);
sys/netinet/in_fib_dxr.c
863
FIB_PRINTF(LOG_NOTICE, dxr->fd,
sys/netinet/in_fib_dxr.c
867
dxr->aux = da;
sys/netinet/in_fib_dxr.c
868
da->fibnum = dxr->fibnum;
sys/netinet/in_fib_dxr.c
869
da->fd = dxr->fd;
sys/netinet/in_fib_dxr.c
907
dxr->nh_tbl = fib_get_nhop_array(da->fd);