bpf: Update __cgroup_bpf_run_filter_skb with cn
authorbrakmo <brakmo@fb.com>
Tue, 28 May 2019 23:59:37 +0000 (16:59 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 31 May 2019 23:41:29 +0000 (16:41 -0700)
commite7a3160d092aa4dd7fb2ef23335cb3a98400aec6
tree09c100a83ac1c6942ec343d9778933e75d5e764b
parent5cf1e91456301f8c4f6bbc63ff76cff12f92f31b
bpf: Update __cgroup_bpf_run_filter_skb with cn

For egress packets, __cgroup_bpf_fun_filter_skb() will now call
BPF_PROG_CGROUP_INET_EGRESS_RUN_ARRAY() instead of PROG_CGROUP_RUN_ARRAY()
in order to propagate congestion notifications (cn) requests to TCP
callers.

For egress packets, this function can return:
   NET_XMIT_SUCCESS    (0)    - continue with packet output
   NET_XMIT_DROP       (1)    - drop packet and notify TCP to call cwr
   NET_XMIT_CN         (2)    - continue with packet output and notify TCP
                                to call cwr
   -EPERM                     - drop packet

For ingress packets, this function will return -EPERM if any attached
program was found and if it returned != 1 during execution. Otherwise 0
is returned.

Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/cgroup.c