func()

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
}