Hi Gianni,

thanks for your patch and sorry for the delayed reply.

On Mon, Jan 25, 2010 at 12:47:59PM +0000, Gianni Tedesco wrote:
> Xen interface names default to the format "vifXX.Y" where XX is the
> domain ID and Y is the interface ID. The patch works by stripping the
> "vifXX." from the interface name iff it conforms to the described
> naming convention.

on my Xen server the guests' interfaces are named vif2.0, vif7.0 and
vif15.0. So if I strip away the vif{number} part, I get "0" three times.
What would you expect to end up with? Is it possible the convention has
changed since I set up that machine?

> The patch assumes the interface naming scheme so not sure how portable
> it is. Perhaps a better fix would be to use interface MAC addresses.
> It appears that libvirt has no suitable interface for determining the
> interface ID...

Maybe something like this would be a good alternative:

  const char *domain_name = virDomainGetName (dom);
  char expected_if_name[] = "vif{dom id}.";
  if ((domain_name == NULL)
      || (strncmp (if_name, expected_if_name) != 0)
    continue;
  return (domain_name + "-"
    + (if_name = strlen (expected_if_name)))

I.e. if the interface name starts with "vif%u" and you can determine a
domain name, replace that string with that name. In my (possibly
unusual) case, I'd end up with names like "eskarina.0".

As a last note: Such behavior breaks backwards compatibility. It is
therefore necessary that the behavior is optional (configurable) and
defaults to "off".

Regards,
-octo
-- 
Florian octo Forster
Hacker in training
GnuPG: 0x91523C3D
http://verplant.org/

Attachment: signature.asc
Description: Digital signature

_______________________________________________
collectd mailing list
collectd@verplant.org
http://mailman.verplant.org/listinfo/collectd

Reply via email to