Michal Prívozník wrote:

> On 11/26/25 18:03, Roman Bogorodskiy wrote:
> > SLIRP networking in bhyve doesn't support MAC and IP addresses
> > configuration, so update the validation code to check that these options
> > are not specified.
> > 
> > Signed-off-by: Roman Bogorodskiy <[email protected]>
> > ---
> >  src/bhyve/bhyve_domain.c                      | 17 +++++++++++++-
> >  .../bhyvexml2argv-slirp-ip.xml                | 22 +++++++++++++++++++
> >  .../bhyvexml2argv-slirp-mac-addr.xml          | 22 +++++++++++++++++++
> >  tests/bhyvexml2argvtest.c                     |  2 ++
> >  4 files changed, 62 insertions(+), 1 deletion(-)
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp-ip.xml
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.xml
> > 
> > diff --git a/src/bhyve/bhyve_domain.c b/src/bhyve/bhyve_domain.c
> > index 4c9ed29333..5c1ed86df6 100644
> > --- a/src/bhyve/bhyve_domain.c
> > +++ b/src/bhyve/bhyve_domain.c
> > @@ -325,6 +325,22 @@ bhyveDomainDeviceDefValidate(const virDomainDeviceDef 
> > *dev,
> >  
> >          break;
> >      }
> > +    case VIR_DOMAIN_DEVICE_NET: {
> > +        virDomainNetDef *net = dev->data.net;
> > +
> > +        if (net->type == VIR_DOMAIN_NET_TYPE_USER) {
> > +            if (!net->mac_generated) {
> > +                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> > +                               _("setting MAC address for SLIRP networking 
> > is not supported"));
> > +                return -1;
> 
> This is a bit unfortunate as many of our public APIs (e.g.
> virDomainDetachDevice()) try to match <interface/> using its MAC address
> first. OTOH, they can find a match using other values specific to
> individual device and we specifically document that device XML should be
> passed full.

Thanks for taking time to point that out. I looked to check how hard
would that be to support that, but apparently, it's already there,
just not mentioned in the manual page [1].

I'll push the series with this chunk removed after one more round of
testing.

1: https://reviews.freebsd.org/D54133

> 
> > +            }
> > +            if (net->guestIP.nips) {
> > +                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> > +                               _("setting IP addresses for SLIRP 
> > networking is not supported"));
> > +                return -1;
> > +            }
> > +        }
> > +    }
> 
> Michal
> 

Reply via email to