2014-02-19 16:30 GMT+01:00 Stefan Hajnoczi <stefa...@gmail.com>:

> On Fri, Feb 14, 2014 at 05:40:24PM +0100, Vincenzo Maffione wrote:
> > This patch fixes configure so that netmap is not compiled in if the
> > host doesn't support an API version >= 11.
> >
> > Moreover, some modifications have been done to net/netmap.c in
> > order to reflect the current netmap API (11).
> >
> > Signed-off-by: Vincenzo Maffione <v.maffi...@gmail.com>
> > ---
> >  configure    |  3 +++
> >  net/netmap.c | 57
> ++++++++++++++-------------------------------------------
> >  2 files changed, 17 insertions(+), 43 deletions(-)
> >
> > 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?
>

Well, I believe Luigi can answer this question better than me, so I would
wait for his answer.

>
> > @@ -56,31 +58,6 @@ typedef struct NetmapState {
> >      struct iovec        iov[IOV_MAX];
> >  } NetmapState;
> >
> > -#define D(format, ...)                                          \
> > -    do {                                                        \
> > -        struct timeval __xxts;                                  \
> > -        gettimeofday(&__xxts, NULL);                            \
> > -        printf("%03d.%06d %s [%d] " format "\n",                \
> > -                (int)__xxts.tv_sec % 1000, (int)__xxts.tv_usec, \
> > -                __func__, __LINE__, ##__VA_ARGS__);         \
> > -    } while (0)
> > -
> > -/* Rate limited version of "D", lps indicates how many per second */
> > -#define RD(lps, format, ...)                                    \
> > -    do {                                                        \
> > -        static int t0, __cnt;                                   \
> > -        struct timeval __xxts;                                  \
> > -        gettimeofday(&__xxts, NULL);                            \
> > -        if (t0 != __xxts.tv_sec) {                              \
> > -            t0 = __xxts.tv_sec;                                 \
> > -            __cnt = 0;                                          \
> > -        }                                                       \
> > -        if (__cnt++ < lps) {                                    \
> > -            D(format, ##__VA_ARGS__);                           \
> > -        }                                                       \
> > -    } while (0)
> > -
> > -
> >  #ifndef __FreeBSD__
> >  #define pkt_copy bcopy
> >  #else
>
> Why are you deleting this?
>
Because now equivalent code is contained by "netmap_user.h"

>
> > @@ -237,7 +214,7 @@ static ssize_t netmap_receive(NetClientState *nc,
> >          return size;
> >      }
> >
> > -    if (ring->avail == 0) {
> > +    if (nm_ring_empty(ring)) {
> >          /* No available slots in the netmap TX ring. */
> >          netmap_write_poll(s, true);
> >          return 0;
> > @@ -250,8 +227,7 @@ static ssize_t netmap_receive(NetClientState *nc,
> >      ring->slot[i].len = size;
> >      ring->slot[i].flags = 0;
> >      pkt_copy(buf, dst, size);
> > -    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.
>

Yes it is. The macro drives an #ifdef in netmap_user.h, so that we can use
some new functions/macros.
Ok for the splitting. Is it necessary to prepare a patch series or can I
send two different patches?

Thanks,
  Vincenzo



-- 
Vincenzo Maffione

Reply via email to