Symbol: fve
sys/altq/altq_flowvalve.h
61
TAILQ_ENTRY(fve) fve_lru; /* for LRU list */
sys/altq/altq_flowvalve.h
80
TAILQ_HEAD(fv_flowhead, fve) fv_flowlist; /* LRU list */
sys/altq/altq_flowvalve.h
82
struct fve *fv_fves; /* pointer to the allocated fves */
sys/altq/altq_red.c
1124
static inline struct fve *
sys/altq/altq_red.c
1128
struct fve *fve;
sys/altq/altq_red.c
1147
TAILQ_FOREACH(fve, &fv->fv_flowlist, fve_lru){
sys/altq/altq_red.c
1148
if (fve->fve_lastdrop.tv_sec == 0)
sys/altq/altq_red.c
1150
if (fve->fve_lastdrop.tv_sec < tthresh.tv_sec) {
sys/altq/altq_red.c
1151
fve->fve_lastdrop.tv_sec = 0;
sys/altq/altq_red.c
1154
if (fve->fve_flow.flow_af == AF_INET &&
sys/altq/altq_red.c
1155
fve->fve_flow.flow_ip.ip_src.s_addr ==
sys/altq/altq_red.c
1157
fve->fve_flow.flow_ip.ip_dst.s_addr ==
sys/altq/altq_red.c
1159
return fve;
sys/altq/altq_red.c
1166
TAILQ_FOREACH(fve, &fv->fv_flowlist, fve_lru){
sys/altq/altq_red.c
1167
if (fve->fve_lastdrop.tv_sec == 0)
sys/altq/altq_red.c
1169
if (fve->fve_lastdrop.tv_sec < tthresh.tv_sec) {
sys/altq/altq_red.c
1170
fve->fve_lastdrop.tv_sec = 0;
sys/altq/altq_red.c
1173
if (fve->fve_flow.flow_af == AF_INET6 &&
sys/altq/altq_red.c
1174
IN6_ARE_ADDR_EQUAL(&fve->fve_flow.flow_ip6.ip6_src,
sys/altq/altq_red.c
1176
IN6_ARE_ADDR_EQUAL(&fve->fve_flow.flow_ip6.ip6_dst,
sys/altq/altq_red.c
1178
return fve;
sys/altq/altq_red.c
1192
static inline struct fve *
sys/altq/altq_red.c
1195
struct fve *fve;
sys/altq/altq_red.c
1204
fve = TAILQ_LAST(&fv->fv_flowlist, fv_flowhead);
sys/altq/altq_red.c
1209
fve->fve_flow.flow_af = AF_INET;
sys/altq/altq_red.c
1210
fve->fve_flow.flow_ip.ip_src = ip->ip_src;
sys/altq/altq_red.c
1211
fve->fve_flow.flow_ip.ip_dst = ip->ip_dst;
sys/altq/altq_red.c
1216
fve->fve_flow.flow_af = AF_INET6;
sys/altq/altq_red.c
1217
fve->fve_flow.flow_ip6.ip6_src = ip6->ip6_src;
sys/altq/altq_red.c
1218
fve->fve_flow.flow_ip6.ip6_dst = ip6->ip6_dst;
sys/altq/altq_red.c
1223
fve->fve_state = Green;
sys/altq/altq_red.c
1224
fve->fve_p = 0.0;
sys/altq/altq_red.c
1225
fve->fve_f = 0.0;
sys/altq/altq_red.c
1226
fve->fve_ifseq = fv->fv_ifseq - 1;
sys/altq/altq_red.c
1227
fve->fve_count = 0;
sys/altq/altq_red.c
1233
return fve;
sys/altq/altq_red.c
1237
flowlist_move_to_head(struct flowvalve *fv, struct fve *fve)
sys/altq/altq_red.c
1239
if (TAILQ_FIRST(&fv->fv_flowlist) != fve) {
sys/altq/altq_red.c
1240
TAILQ_REMOVE(&fv->fv_flowlist, fve, fve_lru);
sys/altq/altq_red.c
1241
TAILQ_INSERT_HEAD(&fv->fv_flowlist, fve, fve_lru);
sys/altq/altq_red.c
1252
struct fve *fve;
sys/altq/altq_red.c
1260
fv->fv_fves = malloc(sizeof(struct fve) * num, M_DEVBUF,
sys/altq/altq_red.c
1270
fve = &fv->fv_fves[i];
sys/altq/altq_red.c
1271
fve->fve_lastdrop.tv_sec = 0;
sys/altq/altq_red.c
1272
TAILQ_INSERT_TAIL(&fv->fv_flowlist, fve, fve_lru);
sys/altq/altq_red.c
1329
struct fve **fcache)
sys/altq/altq_red.c
1331
struct fve *fve;
sys/altq/altq_red.c
1337
if ((fve = flowlist_lookup(fv, pktattr, &now)) == NULL)
sys/altq/altq_red.c
1341
*fcache = fve;
sys/altq/altq_red.c
1344
if (++fve->fve_count == FV_N) {
sys/altq/altq_red.c
1348
fve->fve_f =
sys/altq/altq_red.c
1349
(FV_N << FP_SHIFT) / (fv->fv_ifseq - fve->fve_ifseq)
sys/altq/altq_red.c
1350
+ fve->fve_f - FV_FUNSCALE(fve->fve_f);
sys/altq/altq_red.c
1351
fve->fve_ifseq = fv->fv_ifseq;
sys/altq/altq_red.c
1352
fve->fve_count = 0;
sys/altq/altq_red.c
1358
if (fve->fve_state == Green && fve->fve_p > fv->fv_pthresh) {
sys/altq/altq_red.c
1362
fthresh = fv_p2f(fv, fve->fve_p);
sys/altq/altq_red.c
1363
if (fve->fve_f > fthresh)
sys/altq/altq_red.c
1364
fve->fve_state = Red;
sys/altq/altq_red.c
1367
if (fve->fve_state == Red) {
sys/altq/altq_red.c
1371
if (now.tv_sec - fve->fve_lastdrop.tv_sec > FV_BACKOFFTHRESH) {
sys/altq/altq_red.c
1373
fve->fve_p = 0;
sys/altq/altq_red.c
1374
fve->fve_state = Green;
sys/altq/altq_red.c
1380
flowlist_move_to_head(fv, fve);
sys/altq/altq_red.c
1381
fve->fve_lastdrop = now;
sys/altq/altq_red.c
1392
fve->fve_p -= FV_PUNSCALE(fve->fve_p);
sys/altq/altq_red.c
1393
if (fve->fve_p < 0)
sys/altq/altq_red.c
1394
fve->fve_p = 0;
sys/altq/altq_red.c
1407
struct fve *fcache)
sys/altq/altq_red.c
1409
struct fve *fve;
sys/altq/altq_red.c
1418
fve = fcache;
sys/altq/altq_red.c
1419
else if ((fve = flowlist_lookup(fv, pktattr, &now)) == NULL)
sys/altq/altq_red.c
1420
fve = flowlist_reclaim(fv, pktattr);
sys/altq/altq_red.c
1422
flowlist_move_to_head(fv, fve);
sys/altq/altq_red.c
1429
fve->fve_p = (1 << FP_SHIFT) + fve->fve_p;
sys/altq/altq_red.c
1431
fve->fve_lastdrop = now;
sys/altq/altq_red.c
212
static inline struct fve *flowlist_lookup(struct flowvalve *,
sys/altq/altq_red.c
214
static inline struct fve *flowlist_reclaim(struct flowvalve *,
sys/altq/altq_red.c
216
static inline void flowlist_move_to_head(struct flowvalve *, struct fve *);
sys/altq/altq_red.c
221
struct fve **);
sys/altq/altq_red.c
223
struct fve *);
sys/altq/altq_red.c
354
struct fve *fve = NULL;
sys/altq/altq_red.c
357
if (fv_checkflow(rp->red_flowvalve, pktattr, &fve)) {
sys/altq/altq_red.c
471
fv_dropbyred(rp->red_flowvalve, pktattr, fve);