in pkg/tc/tc.go [307:326]
func (m *bpfTc) getAttachedProgId(link netlink.Link, filterParent uint32) int {
linkName := link.Attrs().Name
filters, err := netlink.FilterList(link, filterParent)
if err != nil {
log.Errorf("failed to list filters for: %s ", linkName, err)
}
progId := 0
filterHandle := uint32(constdef.DEFAULT_BPF_FILTER_HANDLE)
// You will only have one filter for a handle
for _, filter := range filters {
if filter.Attrs().Handle == filterHandle {
bpf, ok := filter.(*netlink.BpfFilter)
if !ok {
continue
}
progId = int(bpf.Id)
}
}
return progId
}