On Fri, Mar 01, 2019 at 12:38:44PM -0800, brakmo wrote: > Host Bandwidth Manager is a framework for limiting the bandwidth used > by v2 cgroups. It consists of 1 BPF helper, a sample BPF program to > limit egress bandwdith as well as a sample user program and script to > simplify HBM testing. > > The sample HBM BPF program is not meant to be production quality, it is > provided as proof of concept. A lot more information, including sample > runs in some cases, are provided in the commit messages of the individual > patches. > > A future patch will add support for reducing TCP's cwnd (we are evaluating > alternatives). Another patch will add support for fair queueing's Earliest > Departure Time. Until then, HBM is better suited for flows supporitng ECN. > > In addition, A BPF program to limit ingress bandwidth will be provided in > an upcomming patchset. > > Changes from v1 to v2: > * bpf_tcp_enter_cwr can only be called from a cgroup skb egress BPF > program (otherwise load or attach will fail) where we already hold > the sk lock. Also only applies for ESTABLISHED state. > * bpf_skb_ecn_set_ce uses INET_ECN_set_ce() > * bpf_tcp_check_probe_timer now uses tcp_reset_xmit_timer. Can only be > used by egress cgroup skb programs. > * removed load_cg_skb user program. > * nrm bpf egress program checks packet header in skb to determine > ECN value. Now also works for ECN enabled UDP packets. > Using ECN_ defines instead of integers. > * NRM script test program now uses bpftool instead of load_cg_skb > > Changes from v2 to v3: > * Changed name from NRM (Network Resource Manager) to HBM (Host > Bandwdith Manager) > * The bpf helper to set ECN ce now checks that the header is writeable > * Removed helper bpf functions that modified TCP state due to a concern > about whether the socket is locked by the current thread.
Applied, Thanks