[libvirt] [PATCH v2 5/5] FreeBSD: implement virNetDevGetMTU().

Laine Stump laine at laine.org
Tue Jan 22 14:53:49 UTC 2013


On 01/20/2013 11:22 AM, Roman Bogorodskiy wrote:
> ---
>  src/util/virnetdev.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>
> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> index cd2b773..3f2b5f8 100644
> --- a/src/util/virnetdev.c
> +++ b/src/util/virnetdev.c
> @@ -412,6 +412,31 @@ cleanup:
>      VIR_FORCE_CLOSE(fd);
>      return ret;
>  }
> +#elif defined(__FreeBSD__)
> +int virNetDevGetMTU(const char *ifname)
> +{
> +    int s;
> +    int ret;
> +    struct ifreq ifr;
> +
> +    if ((s = virNetDevSetupControl(ifname, &ifr)) < 0)
> +        return -1;
> +
> +    ifr.ifr_addr.sa_family = AF_INET;

The above line is the only difference between this and the Linux
version, so why not just use a single function (as you did with
virNetDevSetName() in 1/5)?



> +    if (ioctl(s, SIOCGIFMTU, (caddr_t)&ifr) < 0) {
> +        virReportSystemError(errno,
> +                             _("Cannot get interface MTU on '%s'"),
> +                            ifname);
> +        ret = -1;
> +        goto cleanup;
> +    }
> +
> +    ret = ifr.ifr_mtu;
> +
> +cleanup:
> +    VIR_FORCE_CLOSE(s);
> +    return ret;
> +}
>  #else
>  int virNetDevGetMTU(const char *ifname)
>  {




More information about the libvir-list mailing list