INNER CODE UNIT · Go
ensureTcQdisc
mozillazg/ptcpdump · bpf/bpf.go:431
func ensureTcQdisc(ifindex int) (func(), error) {
tcnl, err := tc.Open(&tc.Config{})
if err != nil {
return nil, err
}
closeFunc := func() {
if err := tcnl.Close(); err != nil {
// TODO: change to use errors.Is
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)
}