From: Rob Hoes Date: Fri, 18 Jun 2010 13:32:23 +0000 (+0100) Subject: Add biosdevname call to Netdev X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=117e57e1754a4b9e373351f815e23305a90bb53f;p=xcp%2Fxen-api-libs.git 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 96761a1835c1 netdev/netdev.ml--- a/netdev/netdev.ml +++ b/netdev/netdev.ml @@ -397,6 +397,13 @@ not(List.mem "xen-backend" (String.split '/' link)) with _ -> false +let get_bios_name name = + try + let output, _ = Forkhelpers.execute_command_get_output "/sbin/biosdevname" ["-i"; name] in + let output = String.strip String.isspace output in + output + with _ -> name + (* Dispatch network backend operations. *) let network_config_file = "/etc/xensource/network.conf" --- diff --git a/netdev/netdev.mli b/netdev/netdev.mli index 07ce719..822d508 100644 --- a/netdev/netdev.mli +++ b/netdev/netdev.mli @@ -131,8 +131,13 @@ val get_carrier : string -> bool (** 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