Er

2026. 9. 15. 10:48카테고리 없음

timeout 15 bpftrace -e '
fentry:skb_do_redirect
{
    @skb[tid] = (uint64)args.skb;

    $ctx = ((struct task_struct *)curtask)->bpf_net_context;
    if ($ctx != 0) {
        @tgt[tid] = $ctx->ri.tgt_index;
        @flags[tid] = $ctx->ri.flags;
    }
}

fexit:dev_get_by_index_rcu
/@skb[tid] && args.ifindex == 10/
{
    printf("LOOKUP skb=0x%lx net=%p ifindex=%d dev=%p\n",
           @skb[tid],
           args.net,
           args.ifindex,
           retval);
}

fexit:skb_do_redirect
/@skb[tid]/
{
    $ret = (int64)retval;

    if (@tgt[tid] == 10) {
        printf("REDIRECT skb=0x%lx target=%llu flags=0x%x ret=%lld\n",
               @skb[tid],
               @tgt[tid],
               @flags[tid],
               $ret);
    }

    $d1 = delete(@skb, tid);
    $d2 = delete(@tgt, tid);
    $d3 = delete(@flags, tid);
}

END
{
    clear(@skb);
    clear(@tgt);
    clear(@flags);
}
'