INNER CODE UNIT · Go
attachTcHook
mozillazg/ptcpdump · bpf/bpf.go:356
func attachTcHook(ifindex int, prog *ebpf.Program, ingress bool) (func(), error) {
tcnl, err := tc.Open(&tc.Config{})
if err != nil {
return nil, err
}
closeFunc := func() {
if err := tcnl.Close(); err != nil {
if !strings.Contains(err.Error(), "no such device") {
log.Warnf("tcnl.Close() failed: %+v", err)
}
}
}
err = tcnl.SetOption(netlink.ExtendedAcknowledge, true)
if err != nil {
return closeFunc, fmt.Errorf("tc: set option ExtendedAcknowledge: %w", err)
}
var filter *tc.Object