Skip to content

max_prob & ecn #2

@dtaht

Description

@dtaht
if (!drop_early(sch, sel_flow, skb->len)) {
    enqueue = true;
} else if (q->params.ecn && (sel_flow->vars.prob <= MAX_PROB / 10) &&
          INET_ECN_set_ce(skb)) {

Although this ecn behavior "drop at 10%" for pie is what ended up in the standard... it was entirely a handwave!!!!!, It is not backed by any hard data whatsoever, and doesn't work well in practice! I was there... when we wrote the code we felt we needed some ecn support.I figured someone from the ecn crowd would leap all over it. They didn't.

Rather than replicate this mistake...

I'd really like to see this made configurable in the range 0-100. You can leverage the existing ecn variable to do this... you just need to express ecn_prob as an int. to userspace. e.g:

else if ((sel_flow->vars.prob <= q->params.ecn) &&
INET_ECN_set_ce(skb)) {

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions