type netlinkHandle … // NewNetLinkHandle will create a new NetLinkHandle func NewNetLinkHandle(isIPv6 bool) NetLinkHandle { … } // EnsureAddressBind checks if address is bound to the interface and, if not, binds it. If the address is already bound, return true. func (h *netlinkHandle) EnsureAddressBind(address, devName string) (exist bool, err error) { … } // UnbindAddress makes sure IP address is unbound from the network interface. func (h *netlinkHandle) UnbindAddress(address, devName string) error { … } // EnsureDummyDevice is part of interface func (h *netlinkHandle) EnsureDummyDevice(devName string) (bool, error) { … } // DeleteDummyDevice is part of interface. func (h *netlinkHandle) DeleteDummyDevice(devName string) error { … } // ListBindAddress will list all IP addresses which are bound in a given interface func (h *netlinkHandle) ListBindAddress(devName string) ([]string, error) { … } // GetAllLocalAddresses return all local addresses on the node. // Only the addresses of the current family are returned. // IPv6 link-local and loopback addresses are excluded. func (h *netlinkHandle) GetAllLocalAddresses() (sets.Set[string], error) { … } // GetLocalAddresses return all local addresses for an interface. // Only the addresses of the current family are returned. // IPv6 link-local and loopback addresses are excluded. func (h *netlinkHandle) GetLocalAddresses(dev string) (sets.Set[string], error) { … } func (h *netlinkHandle) isValidForSet(ip net.IP) bool { … } // GetAllLocalAddressesExcept return all local addresses on the node, // except from the passed dev. This is not the same as to take the // diff between GetAllLocalAddresses and GetLocalAddresses since an // address can be assigned to many interfaces. This problem raised // https://github.com/kubernetes/kubernetes/issues/114815 func (h *netlinkHandle) GetAllLocalAddressesExcept(dev string) (sets.Set[string], error) { … }