in pkg/tc/tc.go [267:305]
func (m *bpfTc) CleanupQdiscs(ingressCleanup bool, egressCleanup bool) error {
if len(m.InterfacePrefix) == 0 {
log.Errorf("invalid empty prefix")
return nil
}
linkList, err := netlink.LinkList()
if err != nil {
log.Errorf("unable to get link list")
return err
}
for _, link := range linkList {
linkName := link.Attrs().Name
if err := mismatchedInterfacePrefix(linkName, m.InterfacePrefix); err == nil {
if ingressCleanup {
log.Infof("Trying to cleanup ingress on %s", linkName)
err = m.TCIngressDetach(linkName)
if err != nil {
if err.Error() == FILTER_CLEANUP_FAILED {
log.Errorf("failed to detach ingress, might not be present so moving on")
}
}
}
if egressCleanup {
log.Infof("Trying to cleanup egress on %s", linkName)
err = m.TCEgressDetach(linkName)
if err != nil {
if err.Error() == FILTER_CLEANUP_FAILED {
log.Errorf("failed to detach egress, might not be present so moving on")
}
}
}
}
}
return nil
}