func logLocalRoutes()

in dp_check/netlink_linux.go [21:46]


func logLocalRoutes(iface net.Interface, addrFamilyLen int) error {
	var addrFamilyStr string
	var netLinkFamily int
	if addrFamilyLen == net.IPv4len {
		addrFamilyStr = "IPv4"
		netLinkFamily = netlink.FAMILY_V4
	} else if addrFamilyLen == net.IPv6len {
		addrFamilyStr = "IPv6"
		netLinkFamily = netlink.FAMILY_V6
	} else {
		return fmt.Errorf("Invalid address family length %v is not IPv4 or IPv6", addrFamilyLen)
	}
	infoLog.Printf("List all %v routes on network interface |Name: %s, hardware address: %s, flags: %s| returned by |netlink.LinkByName(%s)|", addrFamilyStr, iface.Name, iface.HardwareAddr, iface.Flags, iface.Name)
	link, err := netlink.LinkByName(iface.Name)
	if err != nil {
		return err
	}
	rl, err := netlink.RouteList(link, netLinkFamily)
	if err != nil {
		return fmt.Errorf("\"RouteList(link, addrFamily)\" failed: %v", err)
	}
	for _, r := range rl {
		infoLog.Printf("Found %v route: |%s| on network interface |%s|", netLinkFamily, r, iface.Name)
	}
	return nil
}