# HG changeset patch # User Rob Hoes Add biosdevname call to Netdev biosdevname is a tool used to find out the "real" device name of a network interface, according to the BIOS. This name is not affected by manual device renaming or changes in the Linux kernel. Signed-off-by: Rob Hoes diff -r 8d1a037cb063 netdev/netdev.ml --- a/netdev/netdev.ml +++ b/netdev/netdev.ml @@ -397,6 +397,12 @@ not(List.mem "xen-backend" (String.split '/' link)) with _ -> false +let get_bios_name name = + try + let output, _ = Forkhelpers.execute_command_get_output "biosdevname" ["-i"; name] in + output + with _ -> name + (* Dispatch network backend operations. *) let network_config_file = "/etc/xensource/network.conf" diff -r 8d1a037cb063 netdev/netdev.mli --- a/netdev/netdev.mli +++ b/netdev/netdev.mli @@ -131,8 +131,13 @@ (** Returns PCI vendor and device ID for network device. *) val get_ids : string -> string * string -(** Indicates whether the given interface is a physical interface *) +(** Indicates whether the given interface is a physical interface. *) val is_physical : string -> bool -(** Dispatch operation to correct backend device *) +(** Returns the device name of the given interface according to [biosdevname]. This is a name + * that is based on the BIOS name and should not be affected by changes in the Linux kernel or + * manual device renaming. *) +val get_bios_name : string -> string + +(** Dispatch operation to correct backend device. *) val network : network_ops