BPF_TC_EGRESS
case BPF_TC_EGRESS:
case BPF_TC_INGRESS | BPF_TC_EGRESS:
case BPF_TC_EGRESS:
case BPF_TC_EGRESS:
case BPF_TC_INGRESS | BPF_TC_EGRESS:
.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS);
hook.attach_point = BPF_TC_EGRESS;
tc_hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
t->qdisc.attach_point = BPF_TC_EGRESS;
LIBBPF_OPTS(bpf_tc_hook, qdisc_hook, .attach_point = BPF_TC_EGRESS);
LIBBPF_OPTS(bpf_tc_hook, qdisc_hook, .attach_point = BPF_TC_EGRESS);
hook.attach_point = BPF_TC_EGRESS;
hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
BPF_TC_INGRESS : BPF_TC_EGRESS;
tc_hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
BPF_TC_INGRESS : BPF_TC_EGRESS;
BPF_TC_INGRESS : BPF_TC_EGRESS;
tc_hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
BPF_TC_INGRESS : BPF_TC_EGRESS;
tc_hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
BPF_TC_INGRESS : BPF_TC_EGRESS;
tc_hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
BPF_TC_INGRESS : BPF_TC_EGRESS;
tc_hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS, skel->progs.tc_chk, 0);
qdisc_hook->attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_EGRESS, chk_prog, 0);
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS, chk_prog, 0);
XGRESS_FILTER_ADD(&qdisc_src, BPF_TC_EGRESS, skel->progs.egress_host, 0);
XGRESS_FILTER_ADD(&qdisc_dst, BPF_TC_EGRESS, skel->progs.egress_host, 0);
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS,
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS,
XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_EGRESS,
XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_EGRESS,
LIBBPF_OPTS(bpf_tc_hook, tc_hook, .attach_point = BPF_TC_EGRESS);
hook->attach_point = BPF_TC_EGRESS;