BPF_TC_INGRESS
case BPF_TC_INGRESS:
case BPF_TC_INGRESS | BPF_TC_EGRESS:
case BPF_TC_INGRESS:
attach_point == BPF_TC_INGRESS ?
case BPF_TC_INGRESS:
case BPF_TC_INGRESS | BPF_TC_EGRESS:
.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS);
hook.attach_point = BPF_TC_INGRESS;
tc_hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
.attach_point = BPF_TC_INGRESS,
LIBBPF_OPTS(bpf_tc_hook, qdisc_lo, .attach_point = BPF_TC_INGRESS);
inv_hook.attach_point = BPF_TC_INGRESS;
inv_hook.attach_point = BPF_TC_INGRESS;
.attach_point = BPF_TC_INGRESS);
hook.attach_point = BPF_TC_INGRESS;
hook.attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
DECLARE_LIBBPF_OPTS(bpf_tc_hook, inv_hook, .attach_point = BPF_TC_INGRESS);
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_tun_fwd, BPF_TC_INGRESS, skel->progs.tc_src_l3, 0);
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS, skel->progs.tc_dst_l3, 0);
qdisc_hook->attach_point = BPF_TC_INGRESS | BPF_TC_EGRESS;
xgress == BPF_TC_INGRESS ? "ingress" : "egress",
XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_INGRESS, src_prog, 0);
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS, dst_prog, 0);
XGRESS_FILTER_ADD(&qdisc_src, BPF_TC_INGRESS, skel->progs.ingress_host, 0);
XGRESS_FILTER_ADD(&qdisc_dst, BPF_TC_INGRESS, skel->progs.ingress_host, 0);
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS,
XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS,
XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_INGRESS,
XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_INGRESS,
LIBBPF_OPTS(bpf_tc_hook, qdisc_lo, .attach_point = BPF_TC_INGRESS);
LIBBPF_OPTS(bpf_tc_hook, hook, .attach_point = BPF_TC_INGRESS);
LIBBPF_OPTS(bpf_tc_hook, tc_hook, .attach_point = BPF_TC_INGRESS);
LIBBPF_OPTS(bpf_tc_hook, tc_hook, .attach_point = BPF_TC_INGRESS);
LIBBPF_OPTS(bpf_tc_hook, tc_hook, .attach_point = BPF_TC_INGRESS);
.attach_point = BPF_TC_INGRESS);
LIBBPF_OPTS(bpf_tc_hook, tc_hook, .attach_point = BPF_TC_INGRESS);
hook->attach_point = BPF_TC_INGRESS;
.attach_point = BPF_TC_INGRESS);
.attach_point = BPF_TC_INGRESS);