On Wed, Feb 19, 2014 at 10:30:03AM -0800, Luigi Rizzo wrote:
> On Wed, Feb 19, 2014 at 7:30 AM, Stefan Hajnoczi <stefa...@gmail.com> wrote:
> 
> > On Fri, Feb 14, 2014 at 05:40:24PM +0100, Vincenzo Maffione wrote:
> > > diff --git a/configure b/configure
> > > index 88133a1..61eb932 100755
> > > --- a/configure
> > > +++ b/configure
> > > @@ -2118,6 +2118,9 @@ if test "$netmap" != "no" ; then
> > >  #include <net/if.h>
> > >  #include <net/netmap.h>
> > >  #include <net/netmap_user.h>
> > > +#if (NETMAP_API < 11) || (NETMAP_API > 15)
> > > +#error
> > > +#endif
> >
> > Why error when NETMAP_API > 15?
> >
> 
> this is meant to simulate a minor/major version number.
> We will mark minor new features with values up to 15,
> and if something happens that requires a change in the
> backend we will move above 15, at which point we
> will submit backend fixes and also the necessary
> update to ./configure

I see.  A comment in the code would be nice to explain that.

> > > -    ring->cur = NETMAP_RING_NEXT(ring, i);
> > > -    ring->avail--;
> > > +    ring->cur = ring->head = nm_ring_next(ring, i);
> > >      ioctl(s->me.fd, NIOCTXSYNC, NULL);
> > >
> > >      return size;
> >
> > Are these changes related to the NETMAP_WITH_LIBS macro?  Please do that
> > in a separate patch so we keep the version checking change separate from
> > the NETMAP_WITH_LIBS change.
> >
> 
> netmap version 11 and above has NETMAP_WITH_LIBS,
> while previous versions do not, so this ./configure
> change has to go together with the change in the backend.
> 
> The netmap 11 code has already been committed to the FreeBSD
> source repositories (for HEAD, 10 and 9) and to
> code.google.com/p/netmap/ (for those who want it on linux).
> 
> So there is really no point, in my opinion, to make one
> intermediate commit just to ./configure to disable
> netmap detection on FreeBSD (it is already off on linux),
> immediately followed by this one that uses the new feature.
> 
> Just to clarify: with one exception (fields in struct netmap_ring)
> the netmap changes that we have are not at the kernel/user boundary
> but in a library which avoids replicating long and boring code
> (interface name parsing, parameter setting) in applications.
> 
> Avoiding the single incompatible struct change would have
> been of course possible, but at the cost
> extra complexity in the kernel and in userspace
> (to support two slightly different interfaces).
> Since netmap is (so far) relatively little used I thought it
> was more important to fix the API and keep it simple.

Thanks for explaining.  Please put justification for the
NETMAP_WITH_LIBS changes in the commit description.

Stefan

Reply via email to